1 package org.objectweb.celtix.bus.ws.rm; 2 3 import java.math.BigInteger ; 4 import java.util.ArrayList ; 5 import java.util.Collection ; 6 7 import junit.framework.TestCase; 8 9 import org.easymock.classextension.EasyMock; 10 import org.easymock.classextension.IMocksControl; 11 import org.objectweb.celtix.bus.configuration.wsrm.DestinationPolicyType; 12 import org.objectweb.celtix.configuration.Configuration; 13 import org.objectweb.celtix.ws.addressing.v200408.EndpointReferenceType; 14 import org.objectweb.celtix.ws.rm.Identifier; 15 import org.objectweb.celtix.ws.rm.SequenceType; 16 import org.objectweb.celtix.ws.rm.persistence.RMDestinationSequence; 17 import org.objectweb.celtix.ws.rm.persistence.RMStore; 18 import org.objectweb.celtix.ws.rm.policy.RMAssertionType; 19 import org.objectweb.celtix.ws.rm.wsdl.SequenceFault; 20 21 public class RMDestinationTest extends TestCase { 22 23 private IMocksControl control; 24 private RMHandler handler; 25 private EndpointReferenceType address; 26 27 public void setUp() { 28 control = EasyMock.createNiceControl(); 29 handler = control.createMock(RMHandler.class); 30 address = control.createMock(EndpointReferenceType.class); 31 } 32 33 public void testSequenceAccess() { 34 RMStore store = control.createMock(RMStore.class); 35 EasyMock.expect(handler.getStore()).andReturn(store).times(2); 36 store.createDestinationSequence(EasyMock.isA(RMDestinationSequence.class)); 37 EasyMock.expectLastCall(); 38 store.removeDestinationSequence(EasyMock.isA(Identifier.class)); 39 EasyMock.expectLastCall(); 40 41 control.replay(); 42 RMDestination d = new RMDestination(handler); 43 Identifier sid = d.generateSequenceIdentifier(); 44 DestinationSequence seq = new DestinationSequence(sid, address, d); 45 d.addSequence(seq); 46 assertSame(seq, d.getSequence(sid)); 47 assertEquals(1, d.getAllSequences().size()); 48 d.removeSequence(seq); 49 assertNull(d.getSequence(sid)); 50 assertEquals(0, d.getAllSequences().size()); 51 control.verify(); 52 } 53 54 public void testGetDestinationPolicies() { 55 Configuration c = control.createMock(Configuration.class); 56 DestinationPolicyType dp = null; 57 EasyMock.expect(handler.getConfiguration()).andReturn(c); 58 EasyMock.expect(c.getObject(DestinationPolicyType.class, "destinationPolicies")).andReturn(dp); 59 control.replay(); 60 RMDestination d = new RMDestination(handler); 61 assertNotNull(d.getDestinationPolicies()); 62 control.verify(); 63 64 control.reset(); 65 dp = control.createMock(DestinationPolicyType.class); 66 EasyMock.expect(handler.getConfiguration()).andReturn(c); 67 EasyMock.expect(c.getObject(DestinationPolicyType.class, "destinationPolicies")).andReturn(dp); 68 control.replay(); 69 assertNotNull(d.getDestinationPolicies()); 70 control.verify(); 71 } 72 73 public void testAcknowledge() throws SequenceFault { 74 RMStore store = control.createMock(RMStore.class); 75 EasyMock.expect(handler.getStore()).andReturn(store); 76 store.createDestinationSequence(EasyMock.isA(RMDestinationSequence.class)); 77 EasyMock.expectLastCall(); 78 Configuration c = control.createMock(Configuration.class); 79 EasyMock.expect(handler.getConfiguration()).andReturn(c); 80 EasyMock.expect(c.getObject(RMAssertionType.class, "rmAssertion")).andReturn(null); 81 EasyMock.expect(handler.getConfiguration()).andReturn(c); 82 EasyMock.expect(c.getObject(DestinationPolicyType.class, "destinationPolicies")).andReturn(null); 83 84 control.replay(); 85 RMDestination d = new RMDestination(handler); 86 Identifier sid = d.generateSequenceIdentifier(); 87 DestinationSequence seq = new DestinationSequence(sid, address, d); 88 d.addSequence(seq); 89 SequenceType st = RMUtils.getWSRMFactory().createSequenceType(); 90 st.setIdentifier(sid); 91 BigInteger m = new BigInteger ("3"); 92 st.setMessageNumber(m); 93 d.acknowledge(st, RMUtils.getAddressingConstants().getNoneURI()); 94 95 Identifier unknown = d.generateSequenceIdentifier(); 96 st.setIdentifier(unknown); 97 try { 98 d.acknowledge(st, RMUtils.getAddressingConstants().getNoneURI()); 99 fail("Expected sequenceFault not thrown."); 100 } catch (SequenceFault sf) { 101 assertEquals("UnknownSequence", sf.getFaultInfo().getFaultCode().getLocalPart()); 102 } 103 control.verify(); 104 } 105 106 public void testRestore() { 107 RMStore store = control.createMock(RMStore.class); 108 EasyMock.expect(handler.getStore()).andReturn(store); 109 Configuration c = control.createMock(Configuration.class); 110 EasyMock.expect(handler.getConfiguration()).andReturn(c); 111 Configuration pc = control.createMock(Configuration.class); 112 EasyMock.expect(c.getParent()).andReturn(pc); 113 EasyMock.expect(pc.getId()).andReturn("endpoint"); 114 Collection <RMDestinationSequence> dss = new ArrayList <RMDestinationSequence>(); 115 EasyMock.expect(store.getDestinationSequences("endpoint")).andReturn(dss); 116 117 control.replay(); 118 RMDestination d = new RMDestination(handler); 119 d.restore(); 120 assertEquals(0, d.getAllSequences().size()); 121 control.verify(); 122 } 123 124 } 125 | Popular Tags |