1   /*
2    *
3    * The Seasar Software License, Version 1.1
4    *
5    * Copyright (c) 2003-2004 The Seasar Project. All rights reserved.
6    *
7    * Redistribution and use in source and binary forms, with or
8    * without modification, are permitted provided that the following
9    * conditions are met:
10   *
11   * 1. Redistributions of source code must retain the above
12   *    copyright notice, this list of conditions and the following
13   *    disclaimer.
14   *
15   * 2. Redistributions in binary form must reproduce the above
16   *    copyright notice, this list of conditions and the following
17   *    disclaimer in the documentation and/or other materials provided
18   *    with the distribution.
19   *
20   * 3. The end-user documentation included with the redistribution,
21   *    if any, must include the following acknowledgement:
22   *    "This product includes software developed by the
23   *    Seasar Project (http://www.seasar.org/)."
24   *    Alternately, this acknowledgement may appear in the software
25   *    itself, if and wherever such third-party acknowledgements
26   *    normally appear.
27   *
28   * 4. Neither the name "The Seasar Project" nor the names of its
29   *    contributors may be used to endorse or promote products derived
30   *    from this software without specific prior written permission of
31   *    the Seasar Project.
32   *
33   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR
34   * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
35   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
36   * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE SEASAR PROJECT
37   * OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
38   * INCIDENTAL,SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
39   * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
40   * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
41   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
42   * WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING
43   * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
44   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
45   */
46  package org.seasar.remoting.axis.deployment;
47  
48  import java.io.Serializable;
49  
50  import org.seasar.extension.unit.S2TestCase;
51  import org.seasar.framework.container.ComponentDef;
52  import org.seasar.remoting.axis.ServiceDef;
53  
54  /***
55   * @author koichik
56   */
57  public class WSDDS2ServiceTest extends S2TestCase {
58      public WSDDS2ServiceTest(String name) {
59          super(name);
60      }
61  
62      public void setUp() {
63          include("WSDDS2ServiceTest.dicon");
64      }
65  
66      public void testGetServiceClass() throws Exception {
67          ServiceDef sd = new ServiceDef();
68          ComponentDef cd = getComponentDef("no");
69          WSDDS2Service s2Service = new WSDDS2Service(cd, sd);
70          assertEquals("1", NoInterface.class, s2Service.getServiceClass(sd));
71          assertNull("2", sd.getAllowedMethods());
72  
73          cd = getComponentDef("one");
74          s2Service = new WSDDS2Service(cd, sd);
75          assertEquals("3", Runnable.class, s2Service.getServiceClass(sd));
76          assertNull("4", sd.getAllowedMethods());
77  
78          cd = getComponentDef("two");
79          s2Service = new WSDDS2Service(cd, sd);
80          assertEquals("5", TwoInterface.class, s2Service.getServiceClass(sd));
81          assertEquals("6", "run compareTo ", sd.getAllowedMethods());
82  
83          sd.setAllowedMethods("run");
84          cd = getComponentDef("two");
85          s2Service = new WSDDS2Service(cd, sd);
86          assertEquals("7", TwoInterface.class, s2Service.getServiceClass(sd));
87          assertEquals("8", "run", sd.getAllowedMethods());
88      }
89  
90      public static class NoInterface implements Serializable {
91      }
92  
93      public static class OneInterface implements Runnable, Serializable {
94          public void run() {
95          }
96      }
97  
98      public static class TwoInterface implements Runnable, Comparable, Serializable {
99          public void run() {
100         }
101 
102         public int compareTo(Object o) {
103             return 0;
104         }
105     }
106 }