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  }