KickJava   Java API By Example, From Geeks To Geeks.

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


1 package org.objectweb.celtix.bus.ws.rm;
2
3 import javax.xml.datatype.DatatypeConfigurationException JavaDoc;
4 import javax.xml.datatype.DatatypeFactory JavaDoc;
5 import javax.xml.datatype.Duration JavaDoc;
6
7 import junit.framework.TestCase;
8
9
10 import org.easymock.classextension.IMocksControl;
11 import org.objectweb.celtix.bus.configuration.wsrm.DestinationPolicyType;
12 import org.objectweb.celtix.ws.addressing.AddressingProperties;
13 import org.objectweb.celtix.ws.addressing.AttributedURIType;
14 import org.objectweb.celtix.ws.addressing.v200408.AttributedURI;
15 import org.objectweb.celtix.ws.addressing.v200408.EndpointReferenceType;
16 import org.objectweb.celtix.ws.rm.CreateSequenceResponseType;
17 import org.objectweb.celtix.ws.rm.CreateSequenceType;
18 import org.objectweb.celtix.ws.rm.Expires;
19 import org.objectweb.celtix.ws.rm.Identifier;
20 import org.objectweb.celtix.ws.rm.OfferType;
21 import org.objectweb.celtix.ws.rm.wsdl.SequenceFault;
22
23 import static org.easymock.classextension.EasyMock.*;
24
25 public class RMServantTest extends TestCase {
26     
27     private IMocksControl control = createNiceControl();
28     private RMDestination dest;
29     private CreateSequenceType cs;
30     private AttributedURIType to;
31     private DestinationPolicyType dp;
32     private Identifier sid;
33     private AddressingProperties maps;
34
35     public void testCreateSequenceDefault() throws DatatypeConfigurationException JavaDoc, SequenceFault {
36         
37         setupCreateSequence(null, null, true, true);
38         
39         control.replay();
40         
41         CreateSequenceResponseType csr = (new RMServant()).createSequence(dest, cs, maps);
42         
43         control.verify();
44
45         assertSame(sid, csr.getIdentifier());
46         assertNotNull(csr.getAccept());
47         assertTrue(!Names.WSA_NONE_ADDRESS
48                    .equals(csr.getAccept().getAcksTo().getAddress().getValue()));
49     }
50     
51     public void testCreateSequenceRejectOffer() throws DatatypeConfigurationException JavaDoc, SequenceFault {
52         
53         setupCreateSequence(null, null, true, false);
54         
55         control.replay();
56         
57         CreateSequenceResponseType csr = (new RMServant()).createSequence(dest, cs, maps);
58         
59         control.verify();
60
61         assertSame(sid, csr.getIdentifier());
62         assertNotNull(csr.getAccept());
63         assertEquals(Names.WSA_NONE_ADDRESS, csr.getAccept().getAcksTo().getAddress().getValue());
64     }
65     
66     public void testCreateSequenceNoOfferIncluded()
67         throws DatatypeConfigurationException JavaDoc, SequenceFault {
68         
69         setupCreateSequence(null, null, false, false);
70         
71         control.replay();
72         
73         CreateSequenceResponseType csr = (new RMServant()).createSequence(dest, cs, maps);
74         
75         control.verify();
76
77         assertSame(sid, csr.getIdentifier());
78         assertNull(csr.getAccept());
79     }
80     
81     public void testCreateSequenceRequestedDurationNotSupported()
82         throws DatatypeConfigurationException JavaDoc, SequenceFault {
83         
84         setupCreateSequence("PT24H", "PT48H", false, false);
85         
86         control.replay();
87         
88         CreateSequenceResponseType csr = (new RMServant()).createSequence(dest, cs, maps);
89         
90         control.verify();
91
92         assertSame(sid, csr.getIdentifier());
93         assertNull(csr.getAccept());
94         assertEquals("PT24H", csr.getExpires().getValue().toString());
95     }
96     
97     public void testTerminateSequence() throws SequenceFault {
98         dest = control.createMock(RMDestination.class);
99         sid = control.createMock(Identifier.class);
100         
101         (new RMServant()).terminateSequence(dest, sid);
102         
103     }
104     
105     // expires = "PT24H";
106

107     private void setupCreateSequence(String JavaDoc supportedDuration, String JavaDoc requestedDuration,
108                                          boolean includeOffer, boolean acceptOffer)
109         throws DatatypeConfigurationException JavaDoc {
110
111         dest = control.createMock(RMDestination.class);
112         to = control.createMock(AttributedURIType.class);
113         dp = control.createMock(DestinationPolicyType.class);
114         sid = control.createMock(Identifier.class);
115         cs = control.createMock(CreateSequenceType.class);
116         AttributedURIType messageID = control.createMock(AttributedURIType.class);
117         maps = control.createMock(AddressingProperties.class);
118         maps.getMessageID();
119         expectLastCall().andReturn(messageID);
120         
121         dest.generateSequenceIdentifier();
122         expectLastCall().andReturn(sid);
123         
124         dest.getDestinationPolicies();
125         expectLastCall().andReturn(dp);
126         
127         Duration JavaDoc d = null;
128         if (null != supportedDuration) {
129             d = DatatypeFactory.newInstance().newDuration(supportedDuration);
130         }
131         dp.getSequenceExpiration();
132         expectLastCall().andReturn(d);
133             
134         Expires ex = null;
135         if (null != requestedDuration) {
136             Duration JavaDoc rd = DatatypeFactory.newInstance().newDuration(requestedDuration);
137             ex = RMUtils.getWSRMFactory().createExpires();
138             ex.setValue(rd);
139         }
140         cs.getExpires();
141         expectLastCall().andReturn(ex);
142         
143         setupOffer(includeOffer, acceptOffer);
144     }
145
146     private void setupOffer(boolean includeOffer, boolean acceptOffer)
147         throws DatatypeConfigurationException JavaDoc {
148
149         OfferType o = null;
150         if (includeOffer) {
151             o = control.createMock(OfferType.class);
152         }
153         cs.getOffer();
154         expectLastCall().andReturn(o);
155         
156         if (includeOffer) {
157             dp.isAcceptOffers();
158             expectLastCall().andReturn(acceptOffer);
159         }
160         
161         EndpointReferenceType acksTo =
162             control.createMock(EndpointReferenceType.class);
163         if (includeOffer && acceptOffer) {
164             maps.getTo();
165             expectLastCall().andReturn(to);
166             RMHandler handler = control.createMock(RMHandler.class);
167             dest.getHandler();
168             expectLastCall().andReturn(handler);
169             RMSource source = control.createMock(RMSource.class);
170             handler.getSource();
171             expectLastCall().andReturn(source);
172             o.getIdentifier();
173             expectLastCall().andReturn(control.createMock(Identifier.class));
174             o.getExpires();
175             expectLastCall().andReturn(null);
176             cs.getAcksTo();
177             expectLastCall().andReturn(acksTo);
178             AttributedURI address = control.createMock(AttributedURI.class);
179             acksTo.getAddress();
180             expectLastCall().andReturn(address);
181             source.addSequence(isA(SourceSequence.class));
182             expectLastCall();
183             source.setCurrent(isA(Identifier.class), isA(SourceSequence.class));
184             expectLastCall();
185         }
186      
187         cs.getAcksTo();
188         expectLastCall().andReturn(acksTo);
189     }
190 }
191
Popular Tags