1 package org.codehaus.xfire.message.document;
2
3 import javax.xml.namespace.QName;
4
5 import org.codehaus.xfire.service.object.DefaultObjectService;
6 import org.codehaus.xfire.services.BeanService;
7 import org.codehaus.xfire.services.SimpleBean;
8 import org.codehaus.xfire.soap.Soap11;
9 import org.codehaus.xfire.soap.SoapConstants;
10 import org.codehaus.xfire.test.AbstractXFireTypeTest;
11 import org.codehaus.xfire.type.basic.BeanType;
12 import org.codehaus.xfire.wsdl.WSDLWriter;
13 import org.dom4j.Document;
14
15 /***
16 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
17 * @since Feb 21, 2004
18 */
19 public class BeanServiceTest
20 extends AbstractXFireTypeTest
21 {
22 public void setUp() throws Exception
23 {
24 super.setUp();
25
26 DefaultObjectService service = (DefaultObjectService)
27 getServiceBuilder().create(BeanService.class,
28 "Bean",
29 "urn:Bean",
30 Soap11.getInstance(),
31 SoapConstants.STYLE_DOCUMENT,
32 SoapConstants.USE_LITERAL);
33
34 service.getTypeMapping().register(SimpleBean.class,
35 new QName("urn:Bean", "SimpleBean"),
36 new BeanType());
37 }
38
39 public void testBeanService() throws Exception
40 {
41 Document response =
42 invokeService( "Bean", "/org/codehaus/xfire/message/document/bean11.xml" );
43
44 addNamespace( "sb", "urn:Bean" );
45 assertValid( "//sb:getSimpleBeanout", response );
46 assertValid( "//sb:getSimpleBeanout/sb:howdy[text()=\"howdy\"]", response );
47 assertValid( "//sb:getSimpleBeanout/sb:bleh[text()=\"bleh\"]", response );
48 }
49
50 public void testBeanServiceWSDL() throws Exception
51 {
52
53 Document doc = getWSDLDocument( "Bean" );
54
55 addNamespace( "wsdl", WSDLWriter.WSDL11_NS );
56 addNamespace( "wsdlsoap", WSDLWriter.WSDL11_SOAP_NS );
57 addNamespace( "xsd", SoapConstants.XSD );
58
59 assertValid( "/wsdl:definitions/wsdl:types", doc );
60 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema", doc );
61 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:complexType", doc );
62 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:complexType[@name=\"SimpleBean\"]", doc );
63 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:complexType[@name=\"SimpleBean\"]/xsd:sequence/xsd:element[@name=\"bleh\"]", doc );
64 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:complexType[@name=\"SimpleBean\"]/xsd:sequence/xsd:element[@name=\"howdy\"]", doc );
65 assertValid( "/wsdl:definitions/wsdl:types/xsd:schema/xsd:complexType[@name=\"SimpleBean\"]/xsd:sequence/xsd:element[@type=\"xsd:string\"]", doc );
66
67 assertValid( "/wsdl:definitions/wsdl:service/wsdl:port/wsdlsoap:address[@location='http://localhost/services/Bean']", doc );
68 }
69 }