1 package org.codehaus.xfire.java.wsdl;
2
3 import javax.wsdl.Definition;
4 import javax.wsdl.Message;
5 import javax.xml.namespace.QName;
6 import org.codehaus.xfire.SOAPConstants;
7 import org.codehaus.xfire.java.AbstractJavaService;
8 import org.codehaus.xfire.plexus.PlexusXFireTest;
9 import org.codehaus.xfire.service.Service;
10 import org.codehaus.xfire.wsdl.WSDL;
11 import org.dom4j.Document;
12
13
14 /***
15 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
16 * @since Feb 21, 2004
17 */
18 public class WrappedWSDLTest
19 extends PlexusXFireTest
20 {
21 public void testWSDL() throws Exception
22 {
23 AbstractJavaService echo = (AbstractJavaService) lookup( Service.ROLE, "Echo" );
24
25 WrappedWSDL wsdl = (WrappedWSDL) echo.getWSDL();
26
27 Definition def = wsdl.getDefinition();
28
29 wsdl.write( System.out );
30
31 Message request = def.getMessage( new QName("urn:Echo", "echoRequest") );
32
33 assertNotNull( request );
34 assertNotNull( request.getPart( "parameters" ) );
35 assertNotNull( request.getPart( "parameters" ).getElementName() );
36
37 Message response = def.getMessage( new QName("urn:Echo", "echoResponse") );
38
39 assertNotNull( response );
40 assertNotNull( response.getPart( "parameters" ) );
41 assertNotNull( response.getPart( "parameters" ).getElementName() );
42
43 Document doc = wsdl.getDocument();
44
45 addNamespace( "wsdl", WSDL.WSDL11_NS );
46 addNamespace( "xsd", SOAPConstants.XSD );
47
48 assertValid( "/wsdl:definitions/wsdl:types", doc );
49 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema", doc );
50 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:element[@name=\"echo\"]", doc );
51 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:element[@name=\"echoResponse\"]", doc );
52 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:element[@name=\"echo\"]/xsd:complexType/xsd:sequence/xsd:element[@name=\"in0\"]", doc );
53 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:element[@name=\"echo\"]/xsd:complexType/xsd:sequence/xsd:element[@type=\"xsd:string\"]", doc );
54 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:element[@name=\"echoResponse\"]/xsd:complexType/xsd:sequence/xsd:element[@name=\"out\"]", doc );
55 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:element[@name=\"echoResponse\"]/xsd:complexType/xsd:sequence/xsd:element[@type=\"xsd:string\"]", doc );
56 }
57 }