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 RPCLiteralWSDLTest
19      extends PlexusXFireTest
20  {
21      public void testWSDL() throws Exception
22      {
23          AbstractJavaService echo = (AbstractJavaService) lookup( Service.ROLE, "Echo" );
24          
25          RPCLiteralWSDL wsdl = (RPCLiteralWSDL) 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( "in0" ) );
35          assertEquals( "string", request.getPart( "in0" ).getTypeName().getLocalPart() );
36          assertNull( request.getPart("in0").getElementName() );
37          
38          Message response = def.getMessage( new QName("urn:Echo", "echoResponse") );
39          
40          assertNotNull( response );
41          assertNotNull( response.getPart( "out" ) );
42          assertEquals( "string", response.getPart( "out" ).getTypeName().getLocalPart() );
43          assertNull( response.getPart("out").getElementName() );
44          
45          Document doc = wsdl.getDocument();
46  
47          addNamespace( "wsdl", WSDL.WSDL11_NS );
48          addNamespace( "xsd", SOAPConstants.XSD );
49          // TODO: add xpath tests.
50      }
51  }