1 package org.codehaus.xfire.java.document;
2
3 import javax.xml.namespace.QName;
4
5 import org.codehaus.xfire.SOAPConstants;
6 import org.codehaus.xfire.fault.SOAP11FaultHandler;
7 import org.codehaus.xfire.handler.SoapHandler;
8 import org.codehaus.xfire.java.AbstractJavaTest;
9 import org.codehaus.xfire.java.DefaultJavaService;
10 import org.codehaus.xfire.java.JavaServiceHandler;
11 import org.codehaus.xfire.java.test.BeanService;
12 import org.codehaus.xfire.java.test.SimpleBean;
13 import org.codehaus.xfire.java.type.BeanType;
14 import org.codehaus.xfire.java.wsdl.JavaWSDLBuilder;
15 import org.codehaus.xfire.wsdl.WSDL;
16 import org.dom4j.Document;
17
18 /***
19 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
20 * @since Feb 21, 2004
21 */
22 public class BeanServiceTest
23 extends AbstractJavaTest
24 {
25 public void setUp() throws Exception
26 {
27 super.setUp();
28
29 DefaultJavaService service = new DefaultJavaService();
30 service.setName("Bean");
31 service.setDefaultNamespace("urn:Bean");
32 service.setServiceClass(BeanService.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 service.getTypeMapping().register(
48 SimpleBean.class,
49 new QName("urn:Bean", "SimpleBean"),
50 BeanType.class );
51
52 getServiceRegistry().register(service);
53 }
54
55 public void testBeanService() throws Exception
56 {
57 Document response =
58 invokeService( "Bean", "/org/codehaus/xfire/java/document/bean11.xml" );
59
60 addNamespace( "sb", "urn:Bean" );
61 assertValid( "//sb:out", response );
62 assertValid( "//sb:out/sb:howdy[text()=\"howdy\"]", response );
63 assertValid( "//sb:out/sb:bleh[text()=\"bleh\"]", response );
64 }
65
66 public void testBeanServiceWSDL() throws Exception
67 {
68
69 Document doc = getWSDLDocument( "Bean" );
70
71 addNamespace( "wsdl", WSDL.WSDL11_NS );
72 addNamespace( "wsdlsoap", WSDL.WSDL11_SOAP_NS );
73 addNamespace( "xsd", SOAPConstants.XSD );
74
75 assertValid( "/wsdl:definitions/wsdl:types", doc );
76 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema", doc );
77 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:complexType", doc );
78 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:complexType[@name=\"SimpleBean\"]", doc );
79 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:complexType[@name=\"SimpleBean\"]/xsd:sequence/xsd:element[@name=\"bleh\"]", doc );
80 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:complexType[@name=\"SimpleBean\"]/xsd:sequence/xsd:element[@name=\"howdy\"]", doc );
81 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:complexType[@name=\"SimpleBean\"]/xsd:sequence/xsd:element[@type=\"xsd:string\"]", doc );
82
83 assertValid( "/wsdl:definitions/wsdl:service/wsdl:port/wsdlsoap:address[@location='http://localhost/services/Bean']", doc );
84 }
85 }