KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > bus > ws > rm > CreateSequenceRequestTest


1 package org.objectweb.celtix.bus.ws.rm;
2
3 import java.util.ArrayList JavaDoc;
4
5 import javax.xml.datatype.DatatypeConfigurationException JavaDoc;
6 import javax.xml.datatype.DatatypeFactory JavaDoc;
7 import javax.xml.datatype.Duration JavaDoc;
8 import javax.xml.ws.handler.Handler;
9
10 import junit.framework.TestCase;
11
12 import org.easymock.IMocksControl;
13 import org.easymock.classextension.EasyMock;
14 import org.objectweb.celtix.bindings.AbstractBindingBase;
15 import org.objectweb.celtix.bus.configuration.wsrm.SourcePolicyType;
16 import org.objectweb.celtix.bus.handlers.HandlerChainInvoker;
17 import org.objectweb.celtix.bus.ws.addressing.ContextUtils;
18 import org.objectweb.celtix.bus.ws.addressing.VersionTransformer;
19 import org.objectweb.celtix.context.ObjectMessageContext;
20 import org.objectweb.celtix.context.ObjectMessageContextImpl;
21 import org.objectweb.celtix.transports.Transport;
22 import org.objectweb.celtix.ws.rm.CreateSequenceType;
23 import org.objectweb.celtix.ws.rm.Identifier;
24 import org.objectweb.celtix.ws.rm.OfferType;
25 import org.objectweb.celtix.wsdl.EndpointReferenceUtils;
26
27 public class CreateSequenceRequestTest extends TestCase {
28     
29     private static final String JavaDoc NON_ANONYMOUS_ACKSTO_ADDRESS = "http://localhost:9999/decoupled";
30     private static final Duration JavaDoc ONE_DAY;
31     private ObjectMessageContext objectCtx;
32     private RMSource source;
33     private AbstractBindingBase binding;
34     private Transport transport;
35     private HandlerChainInvoker hci;
36     private SourcePolicyType sp;
37     private IMocksControl control;
38     
39     static {
40         Duration JavaDoc d = null;
41         try {
42             DatatypeFactory JavaDoc df = DatatypeFactory.newInstance();
43             d = df.newDuration("PT24H");
44         } catch (DatatypeConfigurationException JavaDoc ex) {
45             ex.printStackTrace();
46         }
47         ONE_DAY = d;
48     }
49     
50     public void setUp() {
51         objectCtx = new ObjectMessageContextImpl();
52         control = EasyMock.createNiceControl();
53         source = control.createMock(RMSource.class);
54         binding = control.createMock(AbstractBindingBase.class);
55         transport = control.createMock(Transport.class);
56         hci = new HandlerChainInvoker(new ArrayList JavaDoc<Handler>());
57         sp = RMUtils.getWSRMConfFactory().createSourcePolicyType();
58         
59         binding.createObjectContext();
60         EasyMock.expectLastCall().andReturn(objectCtx);
61         binding.createHandlerInvoker();
62         EasyMock.expectLastCall().andReturn(hci);
63         source.getSourcePolicies();
64         EasyMock.expectLastCall().andReturn(sp);
65         
66     }
67     
68     public void testDefaultConstruction() {
69         
70         Identifier offeredSid = RMUtils.getWSRMFactory().createIdentifier();
71         source.generateSequenceIdentifier();
72         EasyMock.expectLastCall().andReturn(offeredSid);
73         
74         control.replay();
75         
76         CreateSequenceRequest req =
77             new CreateSequenceRequest(binding,
78                                       transport,
79                                       source,
80                                       getEPR("to"),
81                                       VersionTransformer.convert(getEPR("acksTo")),
82                                       ContextUtils.WSA_OBJECT_FACTORY.createRelatesToType());
83         assertNotNull(req);
84         
85         assertNotNull(CreateSequenceRequest.createDataBindingCallback());
86         
87         Object JavaDoc[] params = req.getObjectMessageContext().getMessageObjects();
88         assertEquals(1, params.length);
89         CreateSequenceType cs = (CreateSequenceType)params[0];
90         
91         assertEquals(VersionTransformer.convert(getEPR("acksTo")).getAddress().getValue(),
92                      cs.getAcksTo().getAddress().getValue());
93         assertNull(cs.getExpires());
94         
95         // default is to include offers
96

97         OfferType offer = cs.getOffer();
98         assertNotNull(offer);
99         assertNull(offer.getExpires());
100         assertNotNull(offer.getIdentifier());
101         
102         control.verify();
103     }
104     
105     public void testNonDefaultConstruction() {
106         
107         control.replay();
108                 
109         sp.setAcksTo(NON_ANONYMOUS_ACKSTO_ADDRESS);
110         sp.setSequenceExpiration(ONE_DAY);
111         sp.setIncludeOffer(false);
112
113         CreateSequenceRequest req =
114             new CreateSequenceRequest(binding,
115                                       transport,
116                                       source,
117                                       getEPR("to"),
118                                       VersionTransformer.convert(getEPR("acksTo")),
119                                       ContextUtils.WSA_OBJECT_FACTORY.createRelatesToType());
120         assertNotNull(req);
121         
122         Object JavaDoc[] params = req.getObjectMessageContext().getMessageObjects();
123         assertEquals(1, params.length);
124         CreateSequenceType cs = (CreateSequenceType)params[0];
125         
126         assertEquals(NON_ANONYMOUS_ACKSTO_ADDRESS,
127                      cs.getAcksTo().getAddress().getValue());
128         assertEquals(ONE_DAY, cs.getExpires().getValue());
129         assertNull(cs.getOffer());
130         
131         control.verify();
132     }
133     
134     private org.objectweb.celtix.ws.addressing.EndpointReferenceType getEPR(String JavaDoc s) {
135         return EndpointReferenceUtils.getEndpointReference("http://nada.nothing.nowhere.null/" + s);
136     }
137 }
138
Popular Tags