Author: gturrell Date: Sat Jan 13 11:41:48 2007 New Revision: 495953 URL: http://svn.apache.org/viewvc?view=rev&rev=495953 Log: WODEN-50 Created unit tests for woden wsdl20 Service and Endpoint.
Added: incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/EndpointTest.java incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/ServiceTest.java Modified: incubator/woden/trunk/java/test/org/apache/woden/tests/AllWodenTestsDOM.java Modified: incubator/woden/trunk/java/test/org/apache/woden/tests/AllWodenTestsDOM.java URL: http://svn.apache.org/viewvc/incubator/woden/trunk/java/test/org/apache/woden/tests/AllWodenTestsDOM.java?view=diff&rev=495953&r1=495952&r2=495953 ============================================================================== --- incubator/woden/trunk/java/test/org/apache/woden/tests/AllWodenTestsDOM.java (original) +++ incubator/woden/trunk/java/test/org/apache/woden/tests/AllWodenTestsDOM.java Sat Jan 13 11:41:48 2007 @@ -39,10 +39,12 @@ import org.apache.woden.wsdl20.extensions.soap.SOAPBindingMessageReferenceExtensionsTest; import org.apache.woden.wsdl20.extensions.soap.SOAPBindingOperationExtensionsTest; import org.apache.woden.wsdl20.xml.EndpointElementTest; +import org.apache.woden.wsdl20.xml.EndpointTest; import org.apache.woden.wsdl20.xml.ImportElementTest; import org.apache.woden.wsdl20.xml.IncludeElementTest; import org.apache.woden.wsdl20.xml.NameAttributeTest; import org.apache.woden.wsdl20.xml.ServiceElementTest; +import org.apache.woden.wsdl20.xml.ServiceTest; import org.apache.woden.xml.IntOrTokenAttrTest; import org.apache.woden.xml.TokenAttrTest; @@ -107,6 +109,8 @@ addTest(SimpleURIResolverTest.suite()); addTest(ImportElementTest.suite()); addTest(IncludeElementTest.suite()); + addTest(EndpointTest.suite()); + addTest(ServiceTest.suite()); //TODO in-progress 30May06 tests for BindingOpExt and BindingMsgRefExt } Added: incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/EndpointTest.java URL: http://svn.apache.org/viewvc/incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/EndpointTest.java?view=auto&rev=495953 ============================================================================== --- incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/EndpointTest.java (added) +++ incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/EndpointTest.java Sat Jan 13 11:41:48 2007 @@ -0,0 +1,151 @@ +/** + * Copyright 2005 Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.woden.wsdl20.xml; + +import java.net.URI; + +import javax.xml.namespace.QName; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.woden.internal.wsdl20.DescriptionImpl; +import org.apache.woden.internal.wsdl20.EndpointImpl; +import org.apache.woden.types.NCName; +import org.apache.woden.wsdl20.Description; +import org.apache.woden.wsdl20.Endpoint; + +/** + * Unit tests for the ImportElement class. + * + * @author Graham Turrell ([EMAIL PROTECTED]) + */ +public class EndpointTest extends TestCase { + + private EndpointImpl fEndpointImpl = null; + private Endpoint fEndpoint = null; + private URI fURI = null; + private QName fBindingQName = null; + private NCName fBindingNCName = null; + private NCName fName = null; + + public static Test suite() + { + return new TestSuite(EndpointTest.class); + } + + /* + * @see TestCase#setUp() + */ + protected void setUp() throws Exception + { + super.setUp(); + fURI = new URI("http://apache.org/endpointURI"); + fEndpointImpl = new EndpointImpl(); + fEndpoint = fEndpointImpl; + } + + /* + * @see TestCase#tearDown() + */ + protected void tearDown() throws Exception + { + super.tearDown(); + fURI = null; + fEndpointImpl = null; + fEndpoint = null; + fBindingQName = null; + fBindingNCName = null; + fName = null; + } + + /* + * Test getAddress() when the (optional) address attribute is set (specified) + */ + public void testGetAddress() + { + fEndpointImpl.setAddress(fURI); + assertEquals(fEndpoint.getAddress(), fURI); // java.net.URI overrides Object.equals() + } + + /* + * Test getAddress() when the (optional) address attribute is unspecified + */ + public void testDefaultGetAddress() + { + assertNull(fEndpoint.getAddress()); + } + + /* + * The Binding with fBindingName is obtained from the Description element associated with the Endpoint's Service + * + */ + public void testGetBinding() + { + /* + * Test setup : work with the Infoset view for the creation of the + * necessary prerequisite partial hierarchy + * Note create the minimum necessary wsdl20 objects + */ + + // Description... + DescriptionElement fDescElement = new DescriptionImpl(); + + // Binding... + fBindingQName = new QName("binding1"); + BindingElement fBindingElement = fDescElement.addBindingElement(); + fBindingNCName = new NCName("binding1"); + NCName fServiceNCName = new NCName("service1"); + QName fServiceQName = new QName("service1"); + NCName fEndpointNCname = new NCName("endpoint1"); + fBindingElement.setName(fBindingNCName); + + // Service... (attach our Endpoint to a Service parented by our Description) + ServiceElement fServiceElement = fDescElement.addServiceElement(); + fServiceElement.setName(fServiceNCName); + + // Endpoint... + EndpointElement fEndpointElement = fServiceElement.addEndpointElement(); + fEndpointElement.setName(fEndpointNCname); + fEndpointElement.setParentElement(fServiceElement); + fEndpointElement.setBindingName(fBindingQName); + fEndpointElement.setParentElement(fServiceElement); + + // Component model creation + Description fDesc = fDescElement.toComponent(); + Endpoint fDerivedEndpoint = fDesc.getService(fServiceQName).getEndpoint(fEndpointNCname); + + assertEquals(fDerivedEndpoint.getBinding().getName(), fBindingQName); // just compare QNames + } + + public void testGetName() + { + fName = new NCName("endpoint_name"); + fEndpointImpl.setName(fName); + assertEquals(fEndpoint.getName(), fName); + } + + /* + * Tests that the returned class is precisely an EndpointElement (ie not a subclass) + * + */ + public void testToElement() + { + assertTrue(fEndpoint.toElement() instanceof EndpointElement); + } + +} \ No newline at end of file Added: incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/ServiceTest.java URL: http://svn.apache.org/viewvc/incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/ServiceTest.java?view=auto&rev=495953 ============================================================================== --- incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/ServiceTest.java (added) +++ incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/ServiceTest.java Sat Jan 13 11:41:48 2007 @@ -0,0 +1,147 @@ +/** + * Copyright 2005 Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.woden.wsdl20.xml; + +import javax.xml.namespace.QName; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.woden.internal.wsdl20.DescriptionImpl; +import org.apache.woden.internal.wsdl20.ServiceImpl; +import org.apache.woden.types.NCName; +import org.apache.woden.wsdl20.Description; +import org.apache.woden.wsdl20.Endpoint; +import org.apache.woden.wsdl20.Interface; +import org.apache.woden.wsdl20.Service; + +/** + * Unit tests for the implementation of Service interface. + * + * @author Graham Turrell ([EMAIL PROTECTED]) + */ +public class ServiceTest extends TestCase { + + private Service fEmptyService = null; + + public static Test suite() + { + return new TestSuite(ServiceTest.class); + } + + /* + * @see TestCase#setUp() + */ + protected void setUp() throws Exception + { + super.setUp(); + fEmptyService = new ServiceImpl(); + } + + /* + * @see TestCase#tearDown() + */ + protected void tearDown() throws Exception + { + super.tearDown(); + } + + /* + * Test that endpoints associated with a service are correctly returned with + * getEndpoint() and getEndpoints(). + * + * Note that a service must have at least one endpoint associated. + */ + + public void testGetEndpointGetEndpoints() + { + /* Set up prereqs: + * - Service with > 1 endpoints created. + */ + ServiceElement fServiceElement = new ServiceImpl(); + EndpointElement fEndpointElement1 = fServiceElement.addEndpointElement(); + fEndpointElement1.setName(new NCName("endpoint1")); + EndpointElement fEndpointElement2 = fServiceElement.addEndpointElement(); + fEndpointElement2.setName(new NCName("endpoint2")); + Service fService = (Service) fServiceElement; + + // test getEndpoint() + Endpoint e1 = fService.getEndpoint(new NCName("endpoint1")); + assertEquals("The retrieved Endpoint object is not that which was set", e1, fEndpointElement1); + + // test getEndpoints() + Endpoint[] e = fService.getEndpoints(); + assertEquals("The incorrect number of endpoints were returned", e.length, 2); + assertEquals("First endpoint is not endpoint1", e[0], fEndpointElement1); + assertEquals("Second endpoint is not endpoint2", e[1], fEndpointElement2); + } + + /* + * Test that a service returns its (required) associated interface. + * + */ + public void testGetInterface() + { + /* Set up prereqs: + * - Description containing one named Interface; + * - Service using that same Interface. + */ + + // Description... + DescriptionElement fDescElement = new DescriptionImpl(); + + // Interface + InterfaceElement fInterfaceElement = fDescElement.addInterfaceElement(); + fInterfaceElement.setName(new NCName("interface1")); + + // Service... + ServiceElement fServiceElement = fDescElement.addServiceElement(); + fServiceElement.setName(new NCName("service1")); + fServiceElement.setInterfaceName(new QName("interface1")); + fServiceElement.setParentElement(fDescElement); + + // "create" the component model to complete the woden object hierachy references + Description fDesc = fDescElement.toComponent(); + fDesc.getServices(); // necessary to set the reference to Description in Service + + /* Test assertions: + * (Object equivalence is fine here - we check both refer to same Object) + */ + assertEquals(((Service)fServiceElement).getInterface(), (Interface) fInterfaceElement); + } + + /* + * Test that getName() correctly returns the assigned service name + */ + public void testGetName() + { + // for simplicity, the default namespace is used throughout such that the string representation of + // QName from the getter will be identical to the NCName of the setter, for the test to succeed. + ((ServiceImpl)fEmptyService).setName(new NCName("service1")); + assertEquals("The service name from getName() differs from that set.", fEmptyService.getName().toString(), "service1"); + } + + /* + * Tests that the returned class is a ServiceElement + * + */ + public void testToElement() + { + assertTrue(fEmptyService.toElement() instanceof ServiceElement); + } + +} --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]