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 7 import org.codehaus.xfire.SOAPConstants; 8 import org.codehaus.xfire.fault.SOAP11FaultHandler; 9 import org.codehaus.xfire.handler.SoapHandler; 10 import org.codehaus.xfire.java.AbstractJavaTest; 11 import org.codehaus.xfire.java.DefaultJavaService; 12 import org.codehaus.xfire.java.JavaServiceHandler; 13 import org.codehaus.xfire.java.test.Echo; 14 import org.codehaus.xfire.wsdl.WSDL; 15 import org.dom4j.Document; 16 17 18 /*** 19 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a> 20 * @since Feb 21, 2004 21 */ 22 public class DocumentWSDLTest 23 extends AbstractJavaTest 24 { 25 public void setUp() throws Exception 26 { 27 super.setUp(); 28 29 DefaultJavaService service = new DefaultJavaService(); 30 service.setName("Echo"); 31 service.setDefaultNamespace("urn:Echo"); 32 service.setServiceClass(Echo.class.getName()); 33 service.setSoapVersion(SOAPConstants.SOAP11_ENVELOPE_NS); 34 service.setStyle(SOAPConstants.STYLE_DOCUMENT); 35 service.setUse(SOAPConstants.USE_LITERAL); 36 service.setFaultHandler(new SOAP11FaultHandler()); 37 service.setWSDLBuilder(new JavaWSDLBuilder( getXFire().getTransportManager() )); 38 39 SoapHandler handler = new SoapHandler(new JavaServiceHandler()); 40 41 service.setServiceHandler( handler ); 42 43 service.setTypeMappingRegistry(getRegistry()); 44 45 service.initialize(); 46 47 getServiceRegistry().register(service); 48 } 49 50 public void testWSDL() throws Exception 51 { 52 DefaultJavaService echo = (DefaultJavaService) getServiceRegistry().getService("Echo"); 53 54 DocumentWSDL wsdl = (DocumentWSDL) echo.getWSDL(); 55 56 Definition def = wsdl.getDefinition(); 57 58 wsdl.write( System.out ); 59 60 Message request = def.getMessage( new QName("urn:Echo", "echoRequest") ); 61 62 assertNotNull( request ); 63 assertNotNull( request.getPart( "in0" ) ); 64 assertEquals( "in0", request.getPart( "in0" ).getElementName().getLocalPart() ); 65 66 Message response = def.getMessage( new QName("urn:Echo", "echoResponse") ); 67 68 assertNotNull( response ); 69 assertNotNull( response.getPart( "out" ) ); 70 assertEquals( "out", response.getPart( "out" ).getElementName().getLocalPart() ); 71 72 Document doc = wsdl.getDocument(); 73 74 addNamespace( "wsdl", WSDL.WSDL11_NS ); 75 addNamespace( "xsd", SOAPConstants.XSD ); 76 77 assertValid( "/wsdl:definitions/wsdl:types", doc ); 78 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema", doc ); 79 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:element[@name=\"in0\"]", doc ); 80 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:element[@name=\"out\"]", doc ); 81 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:element[@name=\"in0\"][@type=\"xsd:string\"]", doc ); 82 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:element[@name=\"out\"][@type=\"xsd:string\"]", doc ); 83 } 84 }