KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > wsdd > TestJAXRPCHandlerInfoChain


1 /*
2  * Copyright 2001-2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package test.wsdd;
18
19 import java.util.Map JavaDoc;
20
21 import javax.xml.namespace.QName JavaDoc;
22 import javax.xml.rpc.handler.Handler JavaDoc;
23 import javax.xml.rpc.handler.HandlerInfo JavaDoc;
24 import javax.xml.rpc.handler.soap.SOAPMessageContext JavaDoc;
25 import javax.xml.rpc.holders.StringHolder JavaDoc;
26
27 import junit.framework.TestCase;
28
29 import org.apache.axis.MessageContext;
30 import org.apache.axis.client.Call;
31 import org.apache.axis.client.Service;
32 import org.apache.axis.configuration.XMLStringProvider;
33 import org.apache.axis.deployment.wsdd.WSDDConstants;
34 import org.apache.axis.message.SOAPHeaderElement;
35 import org.apache.axis.server.AxisServer;
36 import org.apache.axis.transport.local.LocalTransport;
37 import org.w3c.dom.NodeList JavaDoc;
38
39 /**
40  * Tests
41  * - if roles declared in handlerInfoChains are passed to the service method via
42  * the MessageContext
43  * - if parameters are passed to the handler
44  * - if the callback methods of an JAXRPC handler are called
45  *
46  * @author Thomas Bayer (bayer@oio.de)
47  */

48 public class TestJAXRPCHandlerInfoChain extends TestCase implements Handler JavaDoc {
49
50     static final String JavaDoc SERVICE_NAME = "JAXRPCHandlerService";
51     static final String JavaDoc tns = "http://axis.apache.org/test";
52     static final String JavaDoc ROLE_ONE = "http://test.role.one";
53     static final String JavaDoc ROLE_TWO = "http://test.role.two";
54
55     AxisServer server;
56     LocalTransport transport;
57     
58     static boolean roleOneFound = false;
59     static boolean roleTwoFound = false;
60     static boolean initCalled = false;
61     static boolean handleRequestCalled = false;
62     static boolean handleResponseCalled = false;
63     static boolean methodCalled = false;
64
65     static final String JavaDoc wsdd =
66         "<deployment xmlns=\"http://xml.apache.org/axis/wsdd/\" "
67             + "xmlns:java=\""
68             + WSDDConstants.URI_WSDD_JAVA
69             + "\">\n"
70             + " <service name=\""
71             + SERVICE_NAME
72             + "\" "
73             + "provider=\"java:RPC\">\n"
74             + " <parameter name=\"className\" value=\"test.wsdd.TestJAXRPCHandlerInfoChain\"/>"
75             + " <handlerInfoChain>"
76             + " <handlerInfo classname=\"test.wsdd.TestJAXRPCHandlerInfoChain\">"
77             + " <parameter name=\"param1\" value=\"hossa\"/>"
78             + " </handlerInfo>"
79             + " <role soapActorName=\"" + ROLE_ONE + "\"/>"
80             + " <role soapActorName=\"" + ROLE_TWO + "\"/>"
81             + " </handlerInfoChain>"
82             + " </service>\n"
83             + "</deployment>";
84
85     public TestJAXRPCHandlerInfoChain() {
86         super("test");
87     }
88
89     public TestJAXRPCHandlerInfoChain(String JavaDoc s) {
90         super(s);
91     }
92
93     protected void setUp() throws Exception JavaDoc {
94         transport = new LocalTransport(new AxisServer(new XMLStringProvider(wsdd)));
95         transport.setRemoteService(SERVICE_NAME);
96     }
97
98     public void init(HandlerInfo JavaDoc handlerInfo) {
99         assertEquals("hossa", (String JavaDoc) handlerInfo.getHandlerConfig().get("param1"));
100         initCalled = true;
101     }
102
103     public void destroy() {
104     }
105
106     public boolean handleRequest(javax.xml.rpc.handler.MessageContext JavaDoc mc) {
107
108         String JavaDoc[] roles = ((SOAPMessageContext JavaDoc) mc).getRoles();
109         for (int i = 0; i < roles.length; i++) {
110             if (ROLE_ONE.equals(roles[i]))
111                 roleOneFound = true;
112             if (ROLE_TWO.equals(roles[i]))
113                 roleTwoFound = true;
114         }
115
116         handleRequestCalled = true;
117         return true;
118     }
119
120     public QName JavaDoc[] getHeaders() {
121         return null;
122     }
123
124     public boolean handleResponse(javax.xml.rpc.handler.MessageContext JavaDoc mc) {
125         handleResponseCalled = true;
126         return true;
127     }
128
129     public boolean handleFault(javax.xml.rpc.handler.MessageContext JavaDoc mc) {
130         return true;
131     }
132
133     public void doSomething() {
134         methodCalled = true;
135     }
136
137     public void testJAXRPCHandlerRoles() throws Exception JavaDoc {
138         
139         Call call = new Call(new Service());
140         call.setTransport(transport);
141
142         call.invoke("doSomething", null);
143         
144         assertTrue( roleOneFound);
145         assertTrue( roleTwoFound);
146         assertTrue( initCalled);
147         assertTrue( handleRequestCalled);
148         assertTrue( handleResponseCalled);
149         assertTrue( methodCalled);
150     }
151
152  }
153
Popular Tags