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 DocumentWSDLTest 19 extends PlexusXFireTest 20 { 21 public void testWSDL() throws Exception 22 { 23 AbstractJavaService echo = (AbstractJavaService) lookup( Service.ROLE, "Echo" ); 24 25 DocumentWSDL wsdl = (DocumentWSDL) 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( "in0", request.getPart( "in0" ).getElementName().getLocalPart() ); 36 37 Message response = def.getMessage( new QName("urn:Echo", "echoResponse") ); 38 39 assertNotNull( response ); 40 assertNotNull( response.getPart( "out" ) ); 41 assertEquals( "out", response.getPart( "out" ).getElementName().getLocalPart() ); 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=\"in0\"]", doc ); 51 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:element[@name=\"out\"]", doc ); 52 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:element[@name=\"in0\"][@type=\"xsd:string\"]", doc ); 53 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:element[@name=\"out\"][@type=\"xsd:string\"]", doc ); 54 } 55 }