1 package org.codehaus.xfire.java.rpcliteral;
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 ArrayServiceTest
16 extends PlexusXFireTest
17 {
18 public void testBeanService() throws Exception
19 {
20 Document response = invokeService("Bean", "/org/codehaus/xfire/java/rpcliteral/array11-1.xml" );
21
22 addNamespace( "sb", "urn:Bean" );
23 assertValid( "//sb:getBeanArrayResponse/sb:out", response );
24 assertValid( "//sb:getBeanArrayResponse/sb:out/sb:SimpleBean[1]/sb:howdy[text()=\"howdy\"]", response );
25 assertValid( "//sb:getBeanArrayResponse/sb:out/sb:SimpleBean[1]/sb:bleh[text()=\"bleh\"]", response );
26 }
27
28 public void testBeanServiceWSDL() throws Exception
29 {
30 TransportManager tm = (TransportManager) lookup( TransportManager.ROLE );
31 tm.register( new TestHttpTransport() );
32
33
34 Document doc = getWSDLDocument( "Bean" );
35
36 addNamespace( "wsdl", WSDL.WSDL11_NS );
37 addNamespace( "xsd", SOAPConstants.XSD );
38
39 assertValid( "/wsdl:definitions/wsdl:types", doc );
40 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema", doc );
41
42 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:complexType[@name=\"SimpleBean\"]", doc );
43 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:complexType[@name=\"SimpleBean\"]/xsd:sequence/xsd:element[@name=\"bleh\"]", doc );
44 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:complexType[@name=\"SimpleBean\"]/xsd:sequence/xsd:element[@name=\"howdy\"]", doc );
45
46 assertValid( "//xsd:complexType[@name=\"ArrayOfString\"]", doc );
47 assertValid( "//xsd:complexType[@name=\"ArrayOfString\"]/xsd:sequence/xsd:element[@type=\"xsd:string\"]", doc );
48 assertValid( "//xsd:complexType[@name=\"ArrayOfString\"]/xsd:sequence/xsd:element[@name=\"string\"]", doc );
49 assertValid( "//xsd:complexType[@name=\"ArrayOfString\"]/xsd:sequence/xsd:element[@minOccurs=\"0\"]", doc );
50 assertValid( "//xsd:complexType[@name=\"ArrayOfString\"]/xsd:sequence/xsd:element[@maxOccurs=\"unbounded\"]", doc );
51
52 assertValid( "//xsd:complexType[@name=\"ArrayOfBean\"]", doc );
53 assertValid( "//xsd:complexType[@name=\"ArrayOfBean\"]/xsd:sequence/xsd:element[@type='tns:SimpleBean'][@name='SimpleBean']", doc );
54 assertValid( "//xsd:complexType[@name=\"ArrayOfBean\"]/xsd:sequence/xsd:element[@minOccurs=\"0\"]", doc );
55 assertValid( "//xsd:complexType[@name=\"ArrayOfBean\"]/xsd:sequence/xsd:element[@maxOccurs=\"unbounded\"]", doc );
56 }
57 }