You are viewing a plain text version of this content. The canonical link for it is here.
Posted to woden-dev@ws.apache.org by gt...@apache.org on 2007/01/16 16:41:13 UTC

svn commit: r496733 - in /incubator/woden/trunk/java/test/org/apache/woden: tests/AllWodenTestsDOM.java wsdl20/xml/DescriptionTest.java wsdl20/xml/DescriptiontElementTest.java

Author: gturrell
Date: Tue Jan 16 07:41:12 2007
New Revision: 496733

URL: http://svn.apache.org/viewvc?view=rev&rev=496733
Log:
WODEN-51 Created unit tests for woden wsdl20 Description and DescriptionElement API methods of DescriptionImpl.

Added:
    incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/DescriptionTest.java
    incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/DescriptiontElementTest.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=496733&r1=496732&r2=496733
==============================================================================
--- incubator/woden/trunk/java/test/org/apache/woden/tests/AllWodenTestsDOM.java (original)
+++ incubator/woden/trunk/java/test/org/apache/woden/tests/AllWodenTestsDOM.java Tue Jan 16 07:41:12 2007
@@ -38,6 +38,8 @@
 import org.apache.woden.wsdl20.extensions.soap.SOAPBindingFaultReferenceExtensionsTest;
 import org.apache.woden.wsdl20.extensions.soap.SOAPBindingMessageReferenceExtensionsTest;
 import org.apache.woden.wsdl20.extensions.soap.SOAPBindingOperationExtensionsTest;
+import org.apache.woden.wsdl20.xml.DescriptionTest;
+import org.apache.woden.wsdl20.xml.DescriptiontElementTest;
 import org.apache.woden.wsdl20.xml.EndpointElementTest;
 import org.apache.woden.wsdl20.xml.EndpointTest;
 import org.apache.woden.wsdl20.xml.ImportElementTest;
@@ -111,6 +113,8 @@
     addTest(IncludeElementTest.suite());
     addTest(EndpointTest.suite());
     addTest(ServiceTest.suite());
+    addTest(DescriptionTest.suite());
+    addTest(DescriptiontElementTest.suite());
     //TODO in-progress 30May06 tests for BindingOpExt and BindingMsgRefExt
   }
 

Added: incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/DescriptionTest.java
URL: http://svn.apache.org/viewvc/incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/DescriptionTest.java?view=auto&rev=496733
==============================================================================
--- incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/DescriptionTest.java (added)
+++ incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/DescriptionTest.java Tue Jan 16 07:41:12 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 (gturrell@apache.org)
+ */
+public class DescriptionTest extends TestCase {
+
+	private Service fEmptyService = null;
+	
+	public static Test suite()
+	{
+	   return new TestSuite(DescriptionTest.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);
+	}
+
+}

Added: incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/DescriptiontElementTest.java
URL: http://svn.apache.org/viewvc/incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/DescriptiontElementTest.java?view=auto&rev=496733
==============================================================================
--- incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/DescriptiontElementTest.java (added)
+++ incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/DescriptiontElementTest.java Tue Jan 16 07:41:12 2007
@@ -0,0 +1,178 @@
+/**
+ * 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 java.util.Map;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.apache.woden.internal.wsdl20.DescriptionImpl;
+import org.apache.woden.wsdl20.Description;
+import org.apache.woden.wsdl20.extensions.ExtensionRegistry;
+
+/**
+ * Unit tests for the DescriptionElement class.
+ * 
+ * @author Graham Turrell (gturrell@apache.org)
+ */
+public class DescriptiontElementTest extends TestCase {
+
+	private DescriptionElement fDescriptionElement = null;
+    private String fPrefix1 = "prefix1";
+    private String fPrefix2 = "prefix2";
+	private URI fNamespace1 = null;	
+	private URI fNamespace2 = null;	
+	private URI fDocBaseUri = null;
+	
+	public static Test suite()
+	{
+	   return new TestSuite(DescriptiontElementTest.class);
+	}
+	   
+    /*
+     * @see TestCase#setUp()
+     */
+    protected void setUp() throws Exception 
+    {
+        super.setUp();
+        fDescriptionElement = new DescriptionImpl();
+		fNamespace1 = new URI("http://apache.org/namespaceURIa");
+		fNamespace2 = new URI("http://apache.org/namespaceURIb");
+		fDocBaseUri = new URI("http://apache.org/documentbaseURI");
+    }
+
+    /*
+     * @see TestCase#tearDown()
+     */
+    protected void tearDown() throws Exception 
+    {
+        super.tearDown();
+    }
+	
+	public void testSetGetDocumentBaseURI() {
+		fDescriptionElement.setDocumentBaseURI(fDocBaseUri);
+		URI retrievedUri = fDescriptionElement.getDocumentBaseURI();
+		assertEquals("Retrieved document base URI differs from that set", fDocBaseUri, retrievedUri);
+
+	}
+
+	public void testSetGetTargetNamespace() {
+		fDescriptionElement.setTargetNamespace(fNamespace1);
+		URI retrievedTNS = fDescriptionElement.getTargetNamespace();
+		assertEquals("Retrieved target Namespace URI differs from that set", fNamespace1, retrievedTNS);
+	}
+
+	public void testAddGetNamespace() {
+		fDescriptionElement.addNamespace(fPrefix1,fNamespace1);
+		URI uri = fDescriptionElement.getNamespace(fPrefix1);
+		assertEquals("Retrieved NamespaceURI does not match that set", uri, fNamespace1);
+	}
+	
+	/*
+	 * Test getNamespace() when the prefix & namespace pair has not been previously added
+	 */
+	public void testGetNullNamespace() {
+		assertNull("Null was not returned when a non-existent prefix was given", fDescriptionElement.getNamespace("nosuchprefix"));
+	}
+
+	public void testRemoveNamespace() {
+		fDescriptionElement.addNamespace(fPrefix1,fNamespace1);
+		assertNotNull(fDescriptionElement.getNamespace(fPrefix1));
+		fDescriptionElement.removeNamespace(fPrefix1);
+		assertNull(fDescriptionElement.getNamespace(fPrefix1));
+	}
+
+	public void testAddGetNamespaces() {
+		fDescriptionElement.addNamespace(fPrefix1,fNamespace1);
+		fDescriptionElement.addNamespace(fPrefix2,fNamespace2);
+		Map uriMap = fDescriptionElement.getNamespaces();
+		assertEquals("Expected 2 namespaces", uriMap.size(),2);
+		URI uri1 = (URI)uriMap.get(fPrefix1);
+		URI uri2 = (URI)uriMap.get(fPrefix2);
+		assertEquals("Expected NamespaceURI not found", uri1, fNamespace1);
+		assertEquals("Expected NamespaceURI not found", uri2, fNamespace2);	
+	}
+	
+
+	public void testAddGetImportElements() {
+		ImportElement importElement1 = fDescriptionElement.addImportElement();
+		ImportElement importElement2 = fDescriptionElement.addImportElement();
+		ImportElement[] imports = fDescriptionElement.getImportElements();
+		assertEquals("Expected 2 import elements", imports.length, 2);
+	}
+
+	public void testAddGetIncludeElements() {
+		IncludeElement includeElement1 = fDescriptionElement.addIncludeElement();
+		IncludeElement includeElement2 = fDescriptionElement.addIncludeElement();
+		IncludeElement[] includes = fDescriptionElement.getIncludeElements();
+		assertEquals("Expected 2 include elements", includes.length, 2);
+	}
+
+	public void testAddGetInterfaceElements() {
+		InterfaceElement interfaceElement1 = fDescriptionElement.addInterfaceElement();
+		InterfaceElement interfaceElement2 = fDescriptionElement.addInterfaceElement();
+		InterfaceElement[] interfaces = fDescriptionElement.getInterfaceElements();
+		assertEquals("Expected 2 interface elements", interfaces.length, 2);
+	}
+
+	public void testAddGetBindingElements() {
+		BindingElement bindingElement1 = fDescriptionElement.addBindingElement();
+		BindingElement bindingElement2 = fDescriptionElement.addBindingElement();
+		BindingElement[] bindings = fDescriptionElement.getBindingElements();
+		assertEquals("Expected 2 binding elements", bindings.length, 2);
+	}
+
+	public void testAddGetServiceElements() {
+		ServiceElement serviceElement1 = fDescriptionElement.addServiceElement();
+		ServiceElement serviceElement2 = fDescriptionElement.addServiceElement();
+		ServiceElement[] services = fDescriptionElement.getServiceElements();
+		assertEquals("Expected 2 service elements", services.length, 2);
+	}
+
+	/*
+	 * Call the method once to create a new TypesElement and check that its parent is the
+	 * DecsriptionElement under test.
+	 * Call the method again and ensure the same TypesElement object is returned.
+	 */
+	public void testGetTypesElement() {
+		// check first getTypesElement invocation...
+		TypesElement typesElement = fDescriptionElement.getTypesElement();
+		assertNotNull("Method returned null but expected a TypesElement", typesElement);
+		
+		if (typesElement != null) {
+			assertSame("Expected DescriptionElement to be parent of the TypesElement",
+					typesElement.getParentElement(), fDescriptionElement);
+		}	
+		// check subsequent getTypesElement invocation...
+		assertSame(typesElement, fDescriptionElement.getTypesElement());
+	}
+
+	public void testSetGetExtensionRegistry() {
+		ExtensionRegistry er = new ExtensionRegistry();
+		fDescriptionElement.setExtensionRegistry(er);
+		ExtensionRegistry erRetrieved = fDescriptionElement.getExtensionRegistry();
+		assertNotNull("Null given but ExtensionRegistry object expected", erRetrieved);
+		assertSame("Retrieved ExtensionRegistry object differs fromt hat set", er, erRetrieved);
+	}
+
+	public void testToComponent() {
+		Description descComponent = fDescriptionElement.toComponent();
+		assertNotNull("Null component object model unexpected", descComponent);
+	}
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: woden-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: woden-dev-help@ws.apache.org