You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2011/01/10 22:11:21 UTC

svn commit: r1057362 - /cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/CodeFirstWSDLTest.java

Author: dkulp
Date: Mon Jan 10 21:11:20 2011
New Revision: 1057362

URL: http://svn.apache.org/viewvc?rev=1057362&view=rev
Log:
[CXF-3092, CXF-3093] Add tests for these to prove they DO work.
Will follow up with Glen

Modified:
    cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/CodeFirstWSDLTest.java

Modified: cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/CodeFirstWSDLTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/CodeFirstWSDLTest.java?rev=1057362&r1=1057361&r2=1057362&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/CodeFirstWSDLTest.java (original)
+++ cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/CodeFirstWSDLTest.java Mon Jan 10 21:11:20 2011
@@ -20,10 +20,16 @@ package org.apache.cxf.jaxws;
 
 import java.util.Collection;
 
+import javax.jws.WebService;
 import javax.wsdl.Definition;
 import javax.xml.namespace.QName;
+import javax.xml.ws.Endpoint;
+
+import org.w3c.dom.Document;
 
 import org.apache.cxf.Bus;
+import org.apache.cxf.annotations.WSDLDocumentation;
+import org.apache.cxf.annotations.WSDLDocumentationCollection;
 import org.apache.cxf.frontend.ServerFactoryBean;
 import org.apache.cxf.jaxws.service.Hello2;
 import org.apache.cxf.jaxws.service.Hello3;
@@ -34,6 +40,7 @@ import org.apache.cxf.service.Service;
 import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
 import org.apache.cxf.service.model.BindingInfo;
 import org.apache.cxf.service.model.InterfaceInfo;
+import org.apache.cxf.wsdl.WSDLManager;
 import org.apache.cxf.wsdl11.ServiceWSDLBuilder;
 import org.junit.Test;
 
@@ -67,7 +74,7 @@ public class CodeFirstWSDLTest extends A
             new ServiceWSDLBuilder(bus, service.getServiceInfos().get(0));
         return wsdlBuilder.build();
     }
-
+    
     @Test
     public void testWSDL1() throws Exception {
         Definition d = createService(Hello2.class);
@@ -131,4 +138,82 @@ public class CodeFirstWSDLTest extends A
             assertTrue(e.getMessage().contains("WebMethod"));
         }
     }
+    
+    @Test
+    public void testDocumentationOnSEI() throws Exception {
+        //CXF-3093
+        EndpointImpl ep = (EndpointImpl)Endpoint.publish("local://foo", new CXF3093Impl());
+        ServiceWSDLBuilder wsdlBuilder = 
+            new ServiceWSDLBuilder(bus, ep.getService().getServiceInfos().get(0));
+        Definition def = wsdlBuilder.build();
+        Document d = bus.getExtension(WSDLManager.class).getWSDLFactory().newWSDLWriter().getDocument(def);
+        //org.apache.cxf.helpers.XMLUtils.printDOM(d);
+        assertXPathEquals("//wsdl:definitions/wsdl:documentation", "My top level documentation",
+                          d.getDocumentElement());
+        assertXPathEquals("//wsdl:definitions/wsdl:portType/wsdl:documentation", "My portType documentation",
+                          d.getDocumentElement());
+        assertXPathEquals("//wsdl:definitions/wsdl:binding/wsdl:documentation", "My binding doc",
+                          d.getDocumentElement());
+    }
+
+    @WebService(targetNamespace = "http://www.example.org/contract/DoubleIt")
+    @WSDLDocumentationCollection({
+        @WSDLDocumentation("My portType documentation"), 
+        @WSDLDocumentation(value = "My top level documentation", 
+                           placement = WSDLDocumentation.Placement.TOP), 
+        @WSDLDocumentation(value = "My binding doc", placement = WSDLDocumentation.Placement.BINDING) 
+    })
+    public static interface CXF3093PortType { 
+        int doubleIt(int numberToDouble); 
+    }
+    
+    @WebService(targetNamespace = "http://www.example.org/contract/DoubleIt",
+                serviceName = "DoubleItService",
+                portName = "DoubleItPort")
+    public static class CXF3093Impl implements CXF3093PortType {
+        public int doubleIt(int numberToDouble) {
+            return numberToDouble * 2;
+        }
+        
+    }
+
+    
+    @Test
+    public void testDocumentationOnImpl() throws Exception {
+        //CXF-3093
+        EndpointImpl ep = (EndpointImpl)Endpoint.publish("local://foo", new CXF3092Impl());
+        ServiceWSDLBuilder wsdlBuilder = 
+            new ServiceWSDLBuilder(bus, ep.getService().getServiceInfos().get(0));
+        Definition def = wsdlBuilder.build();
+        Document d = bus.getExtension(WSDLManager.class).getWSDLFactory().newWSDLWriter().getDocument(def);
+        //org.apache.cxf.helpers.XMLUtils.printDOM(d);
+        assertXPathEquals("//wsdl:definitions/wsdl:documentation", "My top level documentation",
+                          d.getDocumentElement());
+        assertXPathEquals("//wsdl:definitions/wsdl:service/wsdl:documentation", "My Service documentation",
+                          d.getDocumentElement());
+        assertXPathEquals("//wsdl:definitions/wsdl:binding/wsdl:documentation", "My binding doc",
+                          d.getDocumentElement());
+    }
+
+    @WebService(targetNamespace = "http://www.example.org/contract/DoubleIt")
+    public static interface CXF3092PortType { 
+        int doubleIt(int numberToDouble); 
+    }
+    
+    @WebService(targetNamespace = "http://www.example.org/contract/DoubleIt",
+                serviceName = "DoubleItService",
+                portName = "DoubleItPort")
+    @WSDLDocumentationCollection({
+        @WSDLDocumentation("My Service documentation"), 
+        @WSDLDocumentation(value = "My top level documentation", 
+                           placement = WSDLDocumentation.Placement.TOP), 
+        @WSDLDocumentation(value = "My binding doc", placement = WSDLDocumentation.Placement.BINDING) 
+    })
+    public static class CXF3092Impl implements CXF3092PortType {
+        public int doubleIt(int numberToDouble) {
+            return numberToDouble * 2;
+        }
+        
+    }
+
 }