1   package org.seasar.remoting.axis.deployer;
2   
3   import javax.xml.namespace.QName;
4   
5   import org.apache.axis.providers.java.JavaProvider;
6   import org.seasar.extension.unit.S2TestCase;
7   import org.seasar.framework.container.ComponentDef;
8   import org.seasar.framework.container.MetaDef;
9   import org.seasar.remoting.axis.DeployFailedException;
10  import org.seasar.remoting.axis.deployment.WSDDS2Service;
11  import org.w3c.dom.Element;
12  
13  /***
14   * @author koichik
15   */
16  public class ServiceDeployerTest extends S2TestCase {
17  
18      public ServiceDeployerTest(String name) {
19          super(name);
20      }
21  
22      public void testCreateWSDDS2Service() {
23          include("ServiceDeployerTest.createWSDDS2Service.dicon");
24          AxisDeployer deployer = new AxisDeployer();
25          ServiceDeployer serviceDeployer = (ServiceDeployer) deployer.serviceDeployer;
26  
27          ComponentDef def1 = getComponentDef("null");
28          MetaDef meta1 = def1.getMetaDef("s2-axis:service");
29          WSDDS2Service service1 = serviceDeployer.createWSDDS2Service(def1, meta1);
30          assertNotNull(service1);
31          assertEquals(new QName("null"), service1.getQName());
32  
33          ComponentDef def2 = getComponentDef("serviceDef");
34          MetaDef meta2 = def2.getMetaDef("s2-axis:service");
35          WSDDS2Service service2 = serviceDeployer.createWSDDS2Service(def2, meta2);
36          assertNotNull(service2);
37          assertEquals(new QName("serviceDef"), service2.getQName());
38          assertEquals("java.lang.Boolean", service2.getParameter(JavaProvider.OPTION_CLASSNAME));
39  
40          ComponentDef def3 = getComponentDef("wsdd");
41          MetaDef meta3 = def3.getMetaDef("s2-axis:service");
42          WSDDS2Service service3 = serviceDeployer.createWSDDS2Service(def3, meta3);
43          assertNotNull(service3);
44          assertEquals(new QName("FromWSDD"), service3.getQName());
45          assertEquals("java.lang.Double", service3.getParameter(JavaProvider.OPTION_CLASSNAME));
46  
47          try {
48              ComponentDef def4 = getComponentDef("int");
49              MetaDef meta4 = def4.getMetaDef("s2-axis:service");
50              serviceDeployer.createWSDDS2Service(def4, meta4);
51              fail();
52          }
53          catch (DeployFailedException expected) {
54          }
55      }
56  
57      public void testGetServiceElement() {
58          AxisDeployer deployer = new AxisDeployer();
59          ServiceDeployer serviceDeployer = (ServiceDeployer) deployer.serviceDeployer;
60  
61          Element e1 = serviceDeployer
62                  .getServiceElement("org/seasar/remoting/axis/deployer/ServiceDeployerTest.getServiceElement1.wsdd");
63          assertNotNull(e1);
64          assertEquals("service", e1.getNodeName());
65          assertEquals("one", e1.getAttribute("name"));
66  
67          try {
68              serviceDeployer
69                      .getServiceElement("org/seasar/remoting/axis/deployer/ServiceDeployerTest.getServiceElement0.wsdd");
70              fail();
71          }
72          catch (DeployFailedException expected) {
73          }
74  
75          try {
76              serviceDeployer
77                      .getServiceElement("org/seasar/remoting/axis/deployer/ServiceDeployerTest.getServiceElement2.wsdd");
78              fail();
79          }
80          catch (DeployFailedException expected) {
81          }
82      }
83  }