1 package org.objectweb.celtix.bus.ws.rm; 2 3 import java.util.ArrayList ; 4 5 import javax.xml.datatype.DatatypeConfigurationException ; 6 import javax.xml.datatype.DatatypeFactory ; 7 import javax.xml.datatype.Duration ; 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 NON_ANONYMOUS_ACKSTO_ADDRESS = "http://localhost:9999/decoupled"; 30 private static final Duration 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 d = null; 41 try { 42 DatatypeFactory df = DatatypeFactory.newInstance(); 43 d = df.newDuration("PT24H"); 44 } catch (DatatypeConfigurationException 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 <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 [] 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 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 [] 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 s) { 135 return EndpointReferenceUtils.getEndpointReference("http://nada.nothing.nowhere.null/" + s); 136 } 137 } 138 | Popular Tags |