1 package org.codehaus.xfire.java.wrapped;
2
3 import org.codehaus.xfire.SOAPConstants;
4 import org.codehaus.xfire.java.test.TestHttpTransport;
5 import org.codehaus.xfire.plexus.PlexusXFireTest;
6 import org.codehaus.xfire.transport.TransportManager;
7 import org.codehaus.xfire.wsdl.WSDL;
8 import org.dom4j.Document;
9
10
11 /***
12 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
13 * @since Feb 21, 2004
14 */
15 public class WrappedAutoTypeTest
16 extends PlexusXFireTest
17 {
18 public void testBeanService() throws Exception
19 {
20 Document response =
21 invokeService("Bean", "/org/codehaus/xfire/java/wrapped/bean11.xml");
22
23 addNamespace( "root", "urn:Bean");
24 addNamespace( "sb", "http://test.java.xfire.codehaus.org");
25 assertValid( "//root:getSimpleBeanResponse", response );
26 assertValid( "//root:getSimpleBeanResponse/sb:out", response );
27 assertValid( "//root:getSimpleBeanResponse/sb:out/sb:howdy[text()=\"howdy\"]", response );
28 assertValid( "//root:getSimpleBeanResponse/sb:out/sb:bleh[text()=\"bleh\"]", response );
29 }
30
31 public void testBeanServiceWSDL() throws Exception
32 {
33 TransportManager tm = (TransportManager) lookup( TransportManager.ROLE );
34 tm.register( new TestHttpTransport() );
35
36 Document doc = getWSDLDocument("Bean");
37
38 addNamespace( "wsdl", WSDL.WSDL11_NS );
39 addNamespace( "wsdlsoap", WSDL.WSDL11_SOAP_NS );
40 addNamespace( "xsd", SOAPConstants.XSD );
41
42 assertValid( "/wsdl:definitions/wsdl:types", doc );
43 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema", doc );
44 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema[@targetNamespace='urn:Bean']", doc );
45 assertValid( "//xsd:schema[@targetNamespace='urn:Bean']/xsd:element[@name='getSubmitBean']", doc );
46 assertValid( "//xsd:element[@name='getSubmitBean']/xsd:complexType/xsd:sequence/xsd:element[@name='in1'][@type='xsd:string']", doc );
47 assertValid( "//xsd:element[@name='getSubmitBean']/xsd:complexType/xsd:sequence/xsd:element[@name='in0'][@type='ns1:SimpleBean']", doc );
48
49 assertNotNull( doc.getRootElement().getNamespaceForPrefix("ns1") );
50
51 assertValid( "/wsdl:definitions/wsdl:types" +
52 "/xsd:schema[@targetNamespace='http://test.java.xfire.codehaus.org']" +
53 "/xsd:complexType", doc );
54 assertValid( "/wsdl:definitions/wsdl:types" +
55 "/xsd:schema[@targetNamespace='http://test.java.xfire.codehaus.org']" +
56 "/xsd:complexType[@name=\"SimpleBean\"]", doc );
57 assertValid( "/wsdl:definitions/wsdl:types" +
58 "/xsd:schema[@targetNamespace='http://test.java.xfire.codehaus.org']" +
59 "/xsd:complexType[@name=\"SimpleBean\"]/xsd:sequence/xsd:element[@name=\"bleh\"]", doc );
60 assertValid( "/wsdl:definitions/wsdl:types" +
61 "/xsd:schema[@targetNamespace='http://test.java.xfire.codehaus.org']" +
62 "/xsd:complexType[@name=\"SimpleBean\"]/xsd:sequence/xsd:element[@name=\"howdy\"]", doc );
63 assertValid( "/wsdl:definitions/wsdl:types" +
64 "/xsd:schema[@targetNamespace='http://test.java.xfire.codehaus.org']" +
65 "/xsd:complexType[@name=\"SimpleBean\"]/xsd:sequence/xsd:element[@type=\"xsd:string\"]", doc );
66
67 assertValid( "/wsdl:definitions/wsdl:service/wsdl:port/wsdlsoap:address[@location='http://localhost/services/Bean']", doc );
68 }
69
70 public void testArrayService() throws Exception
71 {
72 Document response = invokeService("Array",
73 "/org/codehaus/xfire/java/wrapped/SubmitStringArray11.xml");
74
75 addNamespace( "a", "urn:Array");
76 addNamespace( "sb", "http://test.java.xfire.codehaus.org");
77 assertValid( "//a:SubmitStringArrayResponse", response );
78 assertValid( "//a:SubmitStringArrayResponse/a:out[text()='true']", response );
79 }
80
81 public void testArrayServiceWSDL() throws Exception
82 {
83 TransportManager tm = (TransportManager) lookup( TransportManager.ROLE );
84 tm.register( new TestHttpTransport() );
85
86 Document doc = getWSDLDocument("Array");
87
88 addNamespace( "wsdl", WSDL.WSDL11_NS );
89 addNamespace( "wsdlsoap", WSDL.WSDL11_SOAP_NS );
90 addNamespace( "xsd", SOAPConstants.XSD );
91
92 assertValid( "/wsdl:definitions/wsdl:types", doc );
93 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema", doc );
94 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema[@targetNamespace='urn:Array']", doc );
95 assertValid( "//xsd:schema[@targetNamespace='urn:Array']/xsd:element[@name='SubmitBeanArray']", doc );
96 assertValid( "//xsd:element[@name='SubmitStringArray']/xsd:complexType/xsd:sequence/xsd:element[@name='in0'][@type='tns:ArrayOfString']", doc );
97 assertValid( "//xsd:element[@name='SubmitBeanArray']/xsd:complexType/xsd:sequence/xsd:element[@name='in0'][@type='tns:ArrayOfSimpleBean']", doc );
98 }
99 }