KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > bus > context > LogicalMessageImplTest


1 package org.objectweb.celtix.bus.context;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.List JavaDoc;
5 import javax.xml.bind.JAXBContext;
6 import javax.xml.bind.JAXBException;
7 import javax.xml.ws.handler.MessageContext;
8 import junit.framework.TestCase;
9
10 import org.objectweb.celtix.context.ObjectMessageContext;
11 import org.objectweb.celtix.context.ObjectMessageContextImpl;
12 import org.objectweb.handler_test.HandlerTest;
13 import org.objectweb.handler_test.types.PingResponse;
14 import org.objectweb.hello_world_soap_http.Greeter;
15 import org.objectweb.hello_world_soap_http.types.GreetMe;
16 import org.objectweb.hello_world_soap_http.types.GreetMeResponse;
17
18 public class LogicalMessageImplTest extends TestCase {
19
20     private final ObjectMessageContextImpl ctx = new ObjectMessageContextImpl();
21     private final LogicalMessageImpl lm = new LogicalMessageImpl(new LogicalMessageContextImpl(ctx));
22     private JAXBContext jaxbCtx;
23
24     public void setUp() throws Exception JavaDoc {
25
26         ctx.setMethod(Greeter.class.getMethod("greetMe", String JavaDoc.class));
27         jaxbCtx = JAXBContext.newInstance(GreetMe.class.getPackage().getName());
28     }
29
30
31     public void testGetPayloadJAXBOutboundArguments() throws NoSuchMethodException JavaDoc, JAXBException {
32         
33         ctx.put(ObjectMessageContext.MESSAGE_INPUT, false);
34         ctx.put(MessageContext.MESSAGE_OUTBOUND_PROPERTY, true);
35
36         doGetArgumentsFromPayloadTest();
37     }
38
39     private void doGetArgumentsFromPayloadTest() {
40         Object JavaDoc[] args = {"test string parameter"};
41         ctx.setMessageObjects(args);
42         
43         Object JavaDoc payload = lm.getPayload(jaxbCtx);
44         assertNotNull(payload);
45         assertTrue(payload instanceof GreetMe);
46         assertEquals(args[0], ((GreetMe)payload).getRequestType());
47     }
48
49
50     public void testGetPayloadJAXBOutboundNoArguments() throws NoSuchMethodException JavaDoc, JAXBException {
51
52         ctx.put(ObjectMessageContext.MESSAGE_INPUT, false);
53         ctx.put(MessageContext.MESSAGE_OUTBOUND_PROPERTY, true);
54
55         Object JavaDoc payload = lm.getPayload(jaxbCtx);
56         assertNull(payload);
57     }
58
59
60     public void testGetPayloadJAXBInboundReturn() {
61
62         ctx.put(ObjectMessageContext.MESSAGE_INPUT, true);
63         ctx.put(MessageContext.MESSAGE_OUTBOUND_PROPERTY, false);
64
65         final String JavaDoc returnValue = "test return value";
66         ctx.setReturn(returnValue);
67         
68         Object JavaDoc o = lm.getPayload(jaxbCtx);
69         assertNotNull(o);
70         assertTrue(o instanceof GreetMeResponse);
71         assertEquals(returnValue, ((GreetMeResponse)o).getResponseType());
72     }
73
74     public void testSetPayloadJAXBOutboundArgs() {
75
76         ctx.put(ObjectMessageContext.MESSAGE_INPUT, false);
77         ctx.put(MessageContext.MESSAGE_OUTBOUND_PROPERTY, true);
78
79         final String JavaDoc testArg = "test argument set";
80         GreetMe wrapper = new GreetMe();
81         wrapper.setRequestType(testArg);
82         lm.setPayload(wrapper, jaxbCtx);
83         
84         GreetMe payload = (GreetMe)lm.getPayload(jaxbCtx);
85         assertEquals(wrapper.getRequestType(), payload.getRequestType());
86         
87         Object JavaDoc[] args = ctx.getMessageObjects();
88
89         assertNotNull(args);
90         assertEquals(1, args.length);
91         assertTrue(args[0] instanceof String JavaDoc);
92         assertEquals(testArg, args[0]);
93     }
94
95
96     public void testSetPayloadJAXInboundReturn() {
97
98         ctx.put(ObjectMessageContext.MESSAGE_INPUT, true);
99         ctx.put(MessageContext.MESSAGE_OUTBOUND_PROPERTY, false);
100
101         final String JavaDoc testResponse = "test replaced response";
102         GreetMeResponse wrapper = new GreetMeResponse();
103         wrapper.setResponseType(testResponse);
104         lm.setPayload(wrapper, jaxbCtx);
105         
106         GreetMeResponse payload = (GreetMeResponse)lm.getPayload(jaxbCtx);
107         assertEquals(wrapper.getResponseType(), payload.getResponseType());
108
109         Object JavaDoc ret = ctx.getReturn();
110             
111         assertNotNull(ret);
112         assertTrue(ret instanceof String JavaDoc);
113         assertEquals(testResponse, ret);
114
115     }
116
117
118     // server side tests
119

120     public void testSetPayloadJAXOutboundReturnListProperty() throws Exception JavaDoc {
121         
122         ctx.put(ObjectMessageContext.MESSAGE_INPUT, true);
123         ctx.put(MessageContext.MESSAGE_OUTBOUND_PROPERTY, true);
124         ctx.setMethod(HandlerTest.class.getMethod("ping"));
125
126         List JavaDoc<String JavaDoc> l = new ArrayList JavaDoc<String JavaDoc>();
127         l.add("foo");
128         l.add("bar");
129         l.add("baz");
130         ctx.setReturn(l);
131
132         Object JavaDoc o = lm.getPayload(jaxbCtx);
133
134         assertNotNull(o);
135         assertEquals(PingResponse.class, o.getClass());
136         assertEquals(l, ((PingResponse)o).getHandlersInfo());
137     }
138     
139     public void testGetPayloadJAXBInbountArgs() {
140         ctx.put(ObjectMessageContext.MESSAGE_INPUT, false);
141     }
142 }
143
Popular Tags