You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ay...@apache.org on 2012/06/28 15:55:19 UTC
svn commit: r1355016 [2/2] - in /cxf/branches/2.6.x-fixes: ./
rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/
rt/ws/rm/src/main/resources/schemas/configuration/
rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/
Modified: cxf/branches/2.6.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTest.java?rev=1355016&r1=1355015&r2=1355016&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTest.java (original)
+++ cxf/branches/2.6.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTest.java Thu Jun 28 13:55:18 2012
@@ -19,84 +19,32 @@
package org.apache.cxf.ws.rm.persistence.jdbc;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
+import java.sql.Connection;
import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-
-import org.apache.cxf.helpers.IOUtils;
-import org.apache.cxf.io.CachedOutputStream;
-import org.apache.cxf.ws.addressing.EndpointReferenceType;
-import org.apache.cxf.ws.addressing.Names;
-import org.apache.cxf.ws.rm.DestinationSequence;
import org.apache.cxf.ws.rm.ProtocolVariation;
import org.apache.cxf.ws.rm.RMUtils;
import org.apache.cxf.ws.rm.SourceSequence;
-import org.apache.cxf.ws.rm.persistence.RMMessage;
import org.apache.cxf.ws.rm.persistence.RMStoreException;
import org.apache.cxf.ws.rm.v200702.Identifier;
-import org.apache.cxf.ws.rm.v200702.SequenceAcknowledgement;
import org.easymock.EasyMock;
-import org.easymock.IMocksControl;
import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
/**
*
*/
-public class RMTxStoreTest extends Assert {
-
- private static final String CLIENT_ENDPOINT_ID =
- "celtix.{http://celtix.objectweb.org/greeter_control}GreeterService/GreeterPort";
- private static final String SERVER_ENDPOINT_ID =
- "celtix.{http://celtix.objectweb.org/greeter_control}GreeterService";
- private static final String NON_ANON_ACKS_TO =
- "http://localhost:9999/decoupled_endpoint";
-
- private static final Long ZERO = new Long(0);
- private static final Long ONE = new Long(1);
- private static final Long TEN = new Long(10);
-
- private static RMTxStore store;
- private static SequenceAcknowledgement ack1;
- private static SequenceAcknowledgement ack2;
-
- private IMocksControl control;
-
+public class RMTxStoreTest extends RMTxStoreTestBase {
@BeforeClass
public static void setUpOnce() {
+ RMTxStoreTestBase.setUpOnce();
RMTxStore.deleteDatabaseFiles();
store = new RMTxStore();
store.setDriverClassName("org.apache.derby.jdbc.EmbeddedDriver");
store.init();
-
- ack1 = new SequenceAcknowledgement();
- SequenceAcknowledgement.AcknowledgementRange range =
- new SequenceAcknowledgement.AcknowledgementRange();
-
- range.setLower(ONE);
- range.setUpper(ONE);
- ack1.getAcknowledgementRange().add(range);
-
- ack2 = new SequenceAcknowledgement();
- range = new SequenceAcknowledgement.AcknowledgementRange();
- range.setLower(ONE);
- range.setUpper(ONE);
- ack2.getAcknowledgementRange().add(range);
- range = new SequenceAcknowledgement.AcknowledgementRange();
- range.setLower(new Long(3));
- range.setUpper(TEN);
- ack2.getAcknowledgementRange().add(range);
}
@AfterClass
@@ -112,569 +60,6 @@ public class RMTxStoreTest extends Asser
}
- @Before
- public void setUp() {
- control = EasyMock.createNiceControl();
- }
-
- @Test
- public void testCreateTables() throws SQLException {
- // tables should have been created during initialisation
- // but verify the operation is idempotent
- store.createTables();
- }
-
- @Test
- public void testCreateDeleteSrcSequences() {
- SourceSequence seq = control.createMock(SourceSequence.class);
- Identifier sid1 = new Identifier();
- sid1.setValue("sequence1");
- EasyMock.expect(seq.getIdentifier()).andReturn(sid1);
- EasyMock.expect(seq.getExpires()).andReturn(null);
- EasyMock.expect(seq.getOfferingSequenceIdentifier()).andReturn(null);
- EasyMock.expect(seq.getEndpointIdentifier()).andReturn(CLIENT_ENDPOINT_ID);
- EasyMock.expect(seq.getProtocol()).andReturn(ProtocolVariation.RM10WSA200408);
-
- control.replay();
- store.createSourceSequence(seq);
- control.verify();
-
- control.reset();
- EasyMock.expect(seq.getIdentifier()).andReturn(sid1);
- EasyMock.expect(seq.getExpires()).andReturn(null);
- EasyMock.expect(seq.getOfferingSequenceIdentifier()).andReturn(null);
- EasyMock.expect(seq.getEndpointIdentifier()).andReturn(CLIENT_ENDPOINT_ID);
- EasyMock.expect(seq.getProtocol()).andReturn(ProtocolVariation.RM10WSA200408);
-
- control.replay();
- try {
- store.createSourceSequence(seq);
- fail("Expected RMStoreException was not thrown.");
- } catch (RMStoreException ex) {
- SQLException se = (SQLException)ex.getCause();
- // duplicate key value
- assertEquals("23505", se.getSQLState());
- }
- control.verify();
-
- control.reset();
- Identifier sid2 = new Identifier();
- sid2.setValue("sequence2");
- EasyMock.expect(seq.getIdentifier()).andReturn(sid2);
- EasyMock.expect(seq.getExpires()).andReturn(new Date());
- Identifier sid3 = new Identifier();
- sid3.setValue("offeringSequence3");
- EasyMock.expect(seq.getOfferingSequenceIdentifier()).andReturn(sid3);
- EasyMock.expect(seq.getEndpointIdentifier()).andReturn(SERVER_ENDPOINT_ID);
- EasyMock.expect(seq.getProtocol()).andReturn(ProtocolVariation.RM10WSA200408);
-
- control.replay();
- store.createSourceSequence(seq);
- control.verify();
-
- store.removeSourceSequence(sid1);
- store.removeSourceSequence(sid2);
-
- // deleting once again is a no-op
- store.removeSourceSequence(sid2);
- }
-
- @Test
- public void testCreateDeleteDestSequences() {
- DestinationSequence seq = control.createMock(DestinationSequence.class);
- Identifier sid1 = new Identifier();
- sid1.setValue("sequence1");
- EndpointReferenceType epr = RMUtils.createAnonymousReference();
- EasyMock.expect(seq.getIdentifier()).andReturn(sid1);
- EasyMock.expect(seq.getAcksTo()).andReturn(epr);
- EasyMock.expect(seq.getEndpointIdentifier()).andReturn(SERVER_ENDPOINT_ID);
- EasyMock.expect(seq.getProtocol()).andReturn(ProtocolVariation.RM10WSA200408);
-
- control.replay();
- store.createDestinationSequence(seq);
- control.verify();
-
- control.reset();
- EasyMock.expect(seq.getIdentifier()).andReturn(sid1);
- EasyMock.expect(seq.getAcksTo()).andReturn(epr);
- EasyMock.expect(seq.getEndpointIdentifier()).andReturn(SERVER_ENDPOINT_ID);
- EasyMock.expect(seq.getProtocol()).andReturn(ProtocolVariation.RM10WSA200408);
-
- control.replay();
- try {
- store.createDestinationSequence(seq);
- fail("Expected RMStoreException was not thrown.");
- } catch (RMStoreException ex) {
- SQLException se = (SQLException)ex.getCause();
- // duplicate key value
- assertEquals("23505", se.getSQLState());
- }
- control.verify();
-
- control.reset();
- Identifier sid2 = new Identifier();
- sid2.setValue("sequence2");
- EasyMock.expect(seq.getIdentifier()).andReturn(sid2);
- epr = RMUtils.createReference(NON_ANON_ACKS_TO);
- EasyMock.expect(seq.getAcksTo()).andReturn(epr);
- EasyMock.expect(seq.getEndpointIdentifier()).andReturn(CLIENT_ENDPOINT_ID);
- EasyMock.expect(seq.getProtocol()).andReturn(ProtocolVariation.RM10WSA200408);
-
- control.replay();
- store.createDestinationSequence(seq);
- control.verify();
-
- store.removeDestinationSequence(sid1);
- store.removeDestinationSequence(sid2);
-
- // deleting once again is a no-op
- store.removeDestinationSequence(sid2);
- }
-
- @Test
- public void testCreateDeleteMessages() throws IOException, SQLException {
- RMMessage msg1 = control.createMock(RMMessage.class);
- RMMessage msg2 = control.createMock(RMMessage.class);
- Identifier sid1 = new Identifier();
- sid1.setValue("sequence1");
- EasyMock.expect(msg1.getMessageNumber()).andReturn(ONE);
- EasyMock.expect(msg2.getMessageNumber()).andReturn(ONE);
- byte[] bytes = new byte[89];
- EasyMock.expect(msg1.getInputStream()).andReturn(new ByteArrayInputStream(bytes));
- EasyMock.expect(msg1.getSize()).andReturn((long)bytes.length);
- EasyMock.expect(msg2.getInputStream()).andReturn(new ByteArrayInputStream(bytes));
- EasyMock.expect(msg2.getSize()).andReturn((long)bytes.length);
-
- control.replay();
- store.beginTransaction();
- store.storeMessage(sid1, msg1, true);
- store.storeMessage(sid1, msg2, false);
- store.commit();
- control.verify();
-
- control.reset();
- EasyMock.expect(msg1.getMessageNumber()).andReturn(ONE);
- EasyMock.expect(msg1.getInputStream()).andReturn(new ByteArrayInputStream(bytes));
- EasyMock.expect(msg1.getSize()).andReturn((long)bytes.length);
-
- control.replay();
- store.beginTransaction();
- try {
- store.storeMessage(sid1, msg1, true);
- } catch (SQLException ex) {
- assertEquals("23505", ex.getSQLState());
- }
- store.abort();
- control.verify();
-
- control.reset();
- EasyMock.expect(msg1.getMessageNumber()).andReturn(TEN);
- EasyMock.expect(msg2.getMessageNumber()).andReturn(TEN);
- EasyMock.expect(msg1.getInputStream()).andReturn(new ByteArrayInputStream(bytes));
- EasyMock.expect(msg1.getSize()).andReturn((long)bytes.length);
- EasyMock.expect(msg2.getInputStream()).andReturn(new ByteArrayInputStream(bytes));
- EasyMock.expect(msg2.getSize()).andReturn((long)bytes.length);
-
- control.replay();
- store.beginTransaction();
- store.storeMessage(sid1, msg1, true);
- store.storeMessage(sid1, msg2, false);
- store.commit();
- control.verify();
-
- Collection<Long> messageNrs = new ArrayList<Long>();
- messageNrs.add(ZERO);
- messageNrs.add(TEN);
- messageNrs.add(ONE);
- messageNrs.add(TEN);
-
- store.removeMessages(sid1, messageNrs, true);
- store.removeMessages(sid1, messageNrs, false);
-
- Identifier sid2 = new Identifier();
- sid1.setValue("sequence2");
- store.removeMessages(sid2, messageNrs, true);
- }
-
- @Test
- public void testUpdateDestinationSequence() throws SQLException, IOException {
- DestinationSequence seq = control.createMock(DestinationSequence.class);
- Identifier sid1 = new Identifier();
- sid1.setValue("sequence1");
- EndpointReferenceType epr = RMUtils.createAnonymousReference();
- EasyMock.expect(seq.getIdentifier()).andReturn(sid1);
- EasyMock.expect(seq.getAcksTo()).andReturn(epr);
- EasyMock.expect(seq.getEndpointIdentifier()).andReturn(SERVER_ENDPOINT_ID);
- EasyMock.expect(seq.getProtocol()).andReturn(ProtocolVariation.RM10WSA200408);
-
- control.replay();
- store.createDestinationSequence(seq);
- control.verify();
-
- control.reset();
- EasyMock.expect(seq.getLastMessageNumber()).andReturn(Long.valueOf(0));
- EasyMock.expect(seq.getAcknowledgment()).andReturn(ack1);
- EasyMock.expect(seq.getIdentifier()).andReturn(sid1);
- EasyMock.expect(seq.getProtocol()).andReturn(ProtocolVariation.RM10WSA200408);
-
- control.replay();
- store.beginTransaction();
- store.updateDestinationSequence(seq);
- store.abort();
-
- control.reset();
- EasyMock.expect(seq.getLastMessageNumber()).andReturn(TEN);
- EasyMock.expect(seq.getAcknowledgment()).andReturn(ack1);
- EasyMock.expect(seq.getIdentifier()).andReturn(sid1);
- EasyMock.expect(seq.getProtocol()).andReturn(ProtocolVariation.RM10WSA200408);
-
- control.replay();
- store.beginTransaction();
- store.updateDestinationSequence(seq);
- store.abort();
-
- store.removeDestinationSequence(sid1);
- }
-
- @Test
- public void testUpdateSourceSequence() throws SQLException {
- SourceSequence seq = control.createMock(SourceSequence.class);
- Identifier sid1 = new Identifier();
- sid1.setValue("sequence1");
- EasyMock.expect(seq.getIdentifier()).andReturn(sid1);
- EasyMock.expect(seq.getExpires()).andReturn(null);
- EasyMock.expect(seq.getOfferingSequenceIdentifier()).andReturn(null);
- EasyMock.expect(seq.getEndpointIdentifier()).andReturn(CLIENT_ENDPOINT_ID);
- EasyMock.expect(seq.getProtocol()).andReturn(ProtocolVariation.RM10WSA200408);
-
- control.replay();
- store.createSourceSequence(seq);
- control.verify();
-
- control.reset();
- EasyMock.expect(seq.getCurrentMessageNr()).andReturn(ONE);
- EasyMock.expect(seq.isLastMessage()).andReturn(false);
- EasyMock.expect(seq.getIdentifier()).andReturn(sid1);
- EasyMock.expect(seq.getProtocol()).andReturn(ProtocolVariation.RM10WSA200408);
-
- control.replay();
- store.beginTransaction();
- store.updateSourceSequence(seq);
- store.abort();
-
- control.reset();
- EasyMock.expect(seq.getCurrentMessageNr()).andReturn(TEN);
- EasyMock.expect(seq.isLastMessage()).andReturn(true);
- EasyMock.expect(seq.getIdentifier()).andReturn(sid1);
- EasyMock.expect(seq.getProtocol()).andReturn(ProtocolVariation.RM10WSA200408);
-
- control.replay();
- store.beginTransaction();
- store.updateSourceSequence(seq);
- store.abort();
-
- store.removeSourceSequence(sid1);
-
- }
-
- @Test
- public void testGetDestinationSequences() throws SQLException, IOException {
-
- Identifier sid1 = null;
- Identifier sid2 = null;
-
- Collection<DestinationSequence> seqs =
- store.getDestinationSequences("unknown");
- assertEquals(0, seqs.size());
-
- try {
- sid1 = setupDestinationSequence("sequence1");
-
- seqs = store.getDestinationSequences(SERVER_ENDPOINT_ID);
- assertEquals(1, seqs.size());
- checkRecoveredDestinationSequences(seqs);
-
- sid2 = setupDestinationSequence("sequence2");
- seqs = store.getDestinationSequences(SERVER_ENDPOINT_ID);
- assertEquals(2, seqs.size());
- checkRecoveredDestinationSequences(seqs);
- } finally {
- if (null != sid1) {
- store.removeDestinationSequence(sid1);
- }
- if (null != sid2) {
- store.removeDestinationSequence(sid2);
- }
- }
- }
-
- @Test
- public void testGetSourceSequences() throws SQLException {
-
- Identifier sid1 = null;
- Identifier sid2 = null;
-
- Collection<SourceSequence> seqs =
- store.getSourceSequences("unknown");
- assertEquals(0, seqs.size());
-
- try {
- sid1 = setupSourceSequence("sequence1");
-
- seqs = store.getSourceSequences(CLIENT_ENDPOINT_ID);
- assertEquals(1, seqs.size());
- checkRecoveredSourceSequences(seqs);
-
- sid2 = setupSourceSequence("sequence2");
- seqs = store.getSourceSequences(CLIENT_ENDPOINT_ID);
- assertEquals(2, seqs.size());
- checkRecoveredSourceSequences(seqs);
- } finally {
- if (null != sid1) {
- store.removeSourceSequence(sid1);
- }
- if (null != sid2) {
- store.removeSourceSequence(sid2);
- }
- }
- }
-
- @Test
- public void testGetDestinationSequence() throws SQLException, IOException {
-
- Identifier sid1 = null;
- Identifier sid2 = null;
-
- DestinationSequence seq =
- store.getDestinationSequence(new Identifier());
- assertNull(seq);
-
- try {
- sid1 = setupDestinationSequence("sequence1");
-
- seq = store.getDestinationSequence(sid1);
- assertNotNull(seq);
- verifyDestinationSequence("sequence1", seq);
-
- sid2 = setupDestinationSequence("sequence2");
- seq = store.getDestinationSequence(sid2);
- assertNotNull(seq);
- verifyDestinationSequence("sequence2", seq);
- } finally {
- if (null != sid1) {
- store.removeDestinationSequence(sid1);
- }
- if (null != sid2) {
- store.removeDestinationSequence(sid2);
- }
- }
- }
-
- @Test
- public void testGetSourceSequence() throws SQLException, IOException {
-
- Identifier sid1 = null;
- Identifier sid2 = null;
-
- SourceSequence seq =
- store.getSourceSequence(new Identifier());
- assertNull(seq);
-
- try {
- sid1 = setupSourceSequence("sequence1");
-
- seq = store.getSourceSequence(sid1);
- assertNotNull(seq);
- verifySourceSequence("sequence1", seq);
-
- sid2 = setupSourceSequence("sequence2");
- seq = store.getSourceSequence(sid2);
- assertNotNull(seq);
- verifySourceSequence("sequence2", seq);
- } finally {
- if (null != sid1) {
- store.removeSourceSequence(sid1);
- }
- if (null != sid2) {
- store.removeSourceSequence(sid2);
- }
- }
- }
-
- @Test
- public void testGetMessages() throws SQLException, IOException {
-
- Identifier sid1 = new Identifier();
- sid1.setValue("sequence1");
- Identifier sid2 = new Identifier();
- sid2.setValue("sequence2");
-
- Collection<RMMessage> out = store.getMessages(sid1, true);
- assertEquals(0, out.size());
- Collection<RMMessage> in = store.getMessages(sid1, false);
- assertEquals(0, out.size());
-
- try {
- setupMessage(sid1, ONE, null, true);
- setupMessage(sid1, ONE, null, false);
-
- out = store.getMessages(sid1, true);
- assertEquals(1, out.size());
- checkRecoveredMessages(out);
-
- in = store.getMessages(sid1, false);
- assertEquals(1, in.size());
- checkRecoveredMessages(in);
-
- setupMessage(sid1, TEN, NON_ANON_ACKS_TO, true);
- setupMessage(sid1, TEN, NON_ANON_ACKS_TO, false);
-
- out = store.getMessages(sid1, true);
- assertEquals(2, out.size());
- checkRecoveredMessages(out);
-
- in = store.getMessages(sid1, false);
- assertEquals(2, in.size());
- checkRecoveredMessages(in);
- } finally {
- Collection<Long> msgNrs = new ArrayList<Long>();
- msgNrs.add(ONE);
- msgNrs.add(TEN);
-
- store.removeMessages(sid1, msgNrs, true);
- store.removeMessages(sid1, msgNrs, false);
- }
- }
-
- @Test
- public void testCreateSequenceStoreOutboundMessage() throws SQLException, IOException {
- Identifier sid1 = null;
- try {
- SourceSequence seq = control.createMock(SourceSequence.class);
- sid1 = new Identifier();
- sid1.setValue("sequence1");
- EasyMock.expect(seq.getIdentifier()).andReturn(sid1);
- EasyMock.expect(seq.getExpires()).andReturn(null);
- EasyMock.expect(seq.getOfferingSequenceIdentifier()).andReturn(null);
- EasyMock.expect(seq.getEndpointIdentifier()).andReturn(CLIENT_ENDPOINT_ID);
- EasyMock.expect(seq.getProtocol()).andReturn(ProtocolVariation.RM10WSA200408);
-
- control.replay();
- store.createSourceSequence(seq);
- control.reset();
-
- Collection<SourceSequence> seqs = store.getSourceSequences(CLIENT_ENDPOINT_ID);
- assertEquals(1, seqs.size());
- SourceSequence rseq = seqs.iterator().next();
- assertFalse(rseq.isLastMessage());
-
- Collection<RMMessage> out = store.getMessages(sid1, true);
- assertEquals(0, out.size());
-
- // set the last message flag
- EasyMock.expect(seq.getIdentifier()).andReturn(sid1).anyTimes();
- EasyMock.expect(seq.isLastMessage()).andReturn(true);
-
- setupOutboundMessage(seq, 1L, null);
- out = store.getMessages(sid1, true);
- assertEquals(1, out.size());
- checkRecoveredMessages(out);
-
- // verify the updated sequence
- seqs = store.getSourceSequences(CLIENT_ENDPOINT_ID);
- assertEquals(1, seqs.size());
- rseq = seqs.iterator().next();
-
- assertTrue(rseq.isLastMessage());
-
- // set the last message flag
- EasyMock.expect(seq.getIdentifier()).andReturn(sid1).anyTimes();
- EasyMock.expect(seq.getCurrentMessageNr()).andReturn(2L);
- EasyMock.expect(seq.isLastMessage()).andReturn(true);
-
- control.replay();
- store.persistOutgoing(seq, null);
- control.reset();
-
- seqs = store.getSourceSequences(CLIENT_ENDPOINT_ID);
- assertEquals(1, seqs.size());
- rseq = seqs.iterator().next();
-
- assertEquals(2, rseq.getCurrentMessageNr());
- } finally {
- if (null != sid1) {
- store.removeSourceSequence(sid1);
- }
- Collection<Long> msgNrs = new ArrayList<Long>();
- msgNrs.add(ONE);
- store.removeMessages(sid1, msgNrs, true);
- }
- }
-
- @Test
- public void testCreateSequenceStoreInboundMessage() throws SQLException, IOException {
- Identifier sid1 = null;
- try {
- DestinationSequence seq = control.createMock(DestinationSequence.class);
- sid1 = new Identifier();
- sid1.setValue("sequence1");
- EndpointReferenceType epr = RMUtils.createAnonymousReference();
- EasyMock.expect(seq.getIdentifier()).andReturn(sid1);
- EasyMock.expect(seq.getAcksTo()).andReturn(epr);
- EasyMock.expect(seq.getEndpointIdentifier()).andReturn(SERVER_ENDPOINT_ID);
- EasyMock.expect(seq.getProtocol()).andReturn(ProtocolVariation.RM10WSA200408);
-
- control.replay();
- store.createDestinationSequence(seq);
-
-
- Collection<DestinationSequence> seqs = store.getDestinationSequences(SERVER_ENDPOINT_ID);
- assertEquals(1, seqs.size());
- DestinationSequence rseq = seqs.iterator().next();
- assertFalse(rseq.isAcknowledged(1));
-
- Collection<RMMessage> in = store.getMessages(sid1, false);
- assertEquals(0, in.size());
-
- control.reset();
- EasyMock.expect(seq.getIdentifier()).andReturn(sid1).anyTimes();
- EasyMock.expect(seq.getAcknowledgment()).andReturn(ack1);
- EasyMock.expect(seq.getAcksTo()).andReturn(epr);
-
- setupInboundMessage(seq, 1L, null);
- in = store.getMessages(sid1, false);
- assertEquals(1, in.size());
- checkRecoveredMessages(in);
-
- seqs = store.getDestinationSequences(SERVER_ENDPOINT_ID);
- assertEquals(1, seqs.size());
- rseq = seqs.iterator().next();
- assertTrue(rseq.isAcknowledged(1));
- assertFalse(rseq.isAcknowledged(10));
-
- EasyMock.expect(seq.getIdentifier()).andReturn(sid1).anyTimes();
- EasyMock.expect(seq.getAcknowledgment()).andReturn(ack2);
- EasyMock.expect(seq.getAcksTo()).andReturn(epr);
-
- control.replay();
- store.persistIncoming(seq, null);
- control.reset();
-
- seqs = store.getDestinationSequences(SERVER_ENDPOINT_ID);
- assertEquals(1, seqs.size());
- rseq = seqs.iterator().next();
- assertTrue(rseq.isAcknowledged(10));
-
- } finally {
- if (null != sid1) {
- store.removeDestinationSequence(sid1);
- }
- Collection<Long> msgNrs = new ArrayList<Long>();
- msgNrs.add(ONE);
- store.removeMessages(sid1, msgNrs, false);
- }
- }
-
@Test
public void testReconnect() throws Exception {
// set the initial reconnect delay to 100 msec for testing
@@ -726,234 +111,14 @@ public class RMTxStoreTest extends Asser
store.removeSourceSequence(sid1);
}
-
- private Identifier setupDestinationSequence(String s) throws IOException, SQLException {
- DestinationSequence seq = control.createMock(DestinationSequence.class);
-
- Identifier sid = new Identifier();
- sid.setValue(s);
- EndpointReferenceType epr = RMUtils.createAnonymousReference();
-
- SequenceAcknowledgement ack = ack1;
- Long lmn = ZERO;
- ProtocolVariation pv = ProtocolVariation.RM10WSA200408;
-
- if ("sequence2".equals(s)) {
- ack = ack2;
- lmn = TEN;
- pv = ProtocolVariation.RM11WSA200508;
- }
-
- EasyMock.expect(seq.getIdentifier()).andReturn(sid);
- EasyMock.expect(seq.getAcksTo()).andReturn(epr);
- EasyMock.expect(seq.getEndpointIdentifier()).andReturn(SERVER_ENDPOINT_ID);
- EasyMock.expect(seq.getLastMessageNumber()).andReturn(lmn);
- EasyMock.expect(seq.getAcknowledgment()).andReturn(ack);
- EasyMock.expect(seq.getIdentifier()).andReturn(sid);
- EasyMock.expect(seq.getProtocol()).andReturn(pv);
-
- control.replay();
- store.createDestinationSequence(seq);
- store.beginTransaction();
- store.updateDestinationSequence(seq);
- store.commit();
- control.reset();
-
- return sid;
- }
-
- private Identifier setupSourceSequence(String s) throws SQLException {
- SourceSequence seq = control.createMock(SourceSequence.class);
- Identifier sid = new Identifier();
- sid.setValue(s);
-
- Date expiry = null;
- Identifier osid = null;
- Long cmn = ONE;
- boolean lm = false;
- ProtocolVariation pv = ProtocolVariation.RM10WSA200408;
-
- if ("sequence2".equals(s)) {
- expiry = new Date(System.currentTimeMillis() + 3600 * 1000);
- osid = new Identifier();
- osid.setValue("offeringSequence");
- cmn = TEN;
- lm = true;
- pv = ProtocolVariation.RM11WSA200508;
- }
-
- EasyMock.expect(seq.getIdentifier()).andReturn(sid);
- EasyMock.expect(seq.getExpires()).andReturn(expiry);
- EasyMock.expect(seq.getOfferingSequenceIdentifier()).andReturn(osid);
- EasyMock.expect(seq.getEndpointIdentifier()).andReturn(CLIENT_ENDPOINT_ID);
- EasyMock.expect(seq.getCurrentMessageNr()).andReturn(cmn);
- EasyMock.expect(seq.isLastMessage()).andReturn(lm);
- EasyMock.expect(seq.getIdentifier()).andReturn(sid);
- EasyMock.expect(seq.getProtocol()).andReturn(pv);
-
- control.replay();
- store.createSourceSequence(seq);
- store.beginTransaction();
- store.updateSourceSequence(seq);
- store.commit();
- control.reset();
-
- return sid;
- }
- private void verifyDestinationSequence(String s, DestinationSequence seq) {
- Identifier sid = seq.getIdentifier();
- assertNotNull(sid);
- assertEquals(s, sid.getValue());
- if ("sequence1".equals(s)) {
- assertEquals(0, seq.getLastMessageNumber());
- SequenceAcknowledgement sa = seq.getAcknowledgment();
- assertNotNull(sa);
- verifyAcknowledgementRanges(sa.getAcknowledgementRange(), new long[]{1, 1});
- assertEquals(ProtocolVariation.RM10WSA200408, seq.getProtocol());
- } else if ("sequence2".equals(s)) {
- assertEquals(10, seq.getLastMessageNumber());
- SequenceAcknowledgement sa = seq.getAcknowledgment();
- assertNotNull(sa);
- verifyAcknowledgementRanges(sa.getAcknowledgementRange(), new long[]{1, 1, 3, 10});
- assertEquals(ProtocolVariation.RM11WSA200508, seq.getProtocol());
- }
- }
-
- private void verifySourceSequence(String s, SourceSequence seq) {
- Identifier sid = seq.getIdentifier();
- assertNotNull(sid);
- assertEquals(s, sid.getValue());
- if ("sequence1".equals(s)) {
- assertNull(seq.getExpires());
- assertEquals(1, seq.getCurrentMessageNr());
- assertFalse(seq.isLastMessage());
- assertEquals(ProtocolVariation.RM10WSA200408, seq.getProtocol());
- } else if ("sequence2".equals(s)) {
- Date expires = seq.getExpires();
- assertNotNull(expires);
- expires.after(new Date());
- assertEquals(10, seq.getCurrentMessageNr());
- assertTrue(seq.isLastMessage());
- assertEquals(ProtocolVariation.RM11WSA200508, seq.getProtocol());
- }
- }
-
- private void verifyAcknowledgementRanges(List<SequenceAcknowledgement.AcknowledgementRange> ranges,
- long[] values) {
- assertNotNull(ranges);
- assertEquals(values.length / 2, ranges.size());
-
- int v = 0;
- for (SequenceAcknowledgement.AcknowledgementRange range : ranges) {
- assertEquals(values[v++], (long)range.getLower());
- assertEquals(values[v++], (long)range.getUpper());
- }
- }
-
- private void setupMessage(Identifier sid, Long mn, String to, boolean outbound)
- throws IOException, SQLException {
- RMMessage msg = createRMMessage(mn, to);
-
- control.replay();
- store.beginTransaction();
- store.storeMessage(sid, msg, outbound);
- store.commit();
- control.reset();
+ @Override
+ protected Connection getConnection() {
+ return store.verifyConnection();
}
- private void setupOutboundMessage(SourceSequence seq, long mn, String to)
- throws IOException, SQLException {
- RMMessage msg = createRMMessage(ONE, to);
- control.replay();
- store.persistOutgoing(seq, msg);
- control.reset();
- }
-
- private void setupInboundMessage(DestinationSequence seq, long mn, String to)
- throws IOException, SQLException {
- RMMessage msg = createRMMessage(ONE, to);
- control.replay();
- store.persistIncoming(seq, msg);
- control.reset();
- }
-
- private RMMessage createRMMessage(Long mn, String to) throws IOException {
- RMMessage msg = control.createMock(RMMessage.class);
- EasyMock.expect(msg.getMessageNumber()).andReturn(mn);
- EasyMock.expect(msg.getTo()).andReturn(to);
- byte[] value = ("Message " + mn.longValue()).getBytes();
- EasyMock.expect(msg.getInputStream()).andReturn(new ByteArrayInputStream(value));
- EasyMock.expect(msg.getSize()).andReturn((long)value.length);
- EasyMock.expect(msg.getCachedOutputStream()).andReturn(new CachedOutputStream()).anyTimes();
- return msg;
- }
-
- private void checkRecoveredDestinationSequences(Collection<DestinationSequence> seqs) {
-
- for (DestinationSequence recovered : seqs) {
- assertTrue("sequence1".equals(recovered.getIdentifier().getValue())
- || "sequence2".equals(recovered.getIdentifier().getValue()));
- assertEquals(Names.WSA_ANONYMOUS_ADDRESS, recovered.getAcksTo().getAddress().getValue());
- if ("sequence1".equals(recovered.getIdentifier().getValue())) {
- assertEquals(0, recovered.getLastMessageNumber());
- assertEquals(1, recovered.getAcknowledgment().getAcknowledgementRange().size());
- SequenceAcknowledgement.AcknowledgementRange r =
- recovered.getAcknowledgment().getAcknowledgementRange().get(0);
- assertEquals(ONE, r.getLower());
- assertEquals(ONE, r.getUpper());
- assertEquals(ProtocolVariation.RM10WSA200408, recovered.getProtocol());
- } else {
- assertEquals(10, recovered.getLastMessageNumber());
- assertEquals(2, recovered.getAcknowledgment().getAcknowledgementRange().size());
- SequenceAcknowledgement.AcknowledgementRange r =
- recovered.getAcknowledgment().getAcknowledgementRange().get(0);
- assertEquals(ONE, r.getLower());
- assertEquals(ONE, r.getUpper());
- r = recovered.getAcknowledgment().getAcknowledgementRange().get(1);
- assertEquals(new Long(3), r.getLower());
- assertEquals(TEN, r.getUpper());
- assertEquals(ProtocolVariation.RM11WSA200508, recovered.getProtocol());
- }
- }
- }
-
- private void checkRecoveredSourceSequences(Collection<SourceSequence> seqs) {
-
- for (SourceSequence recovered : seqs) {
- assertTrue("sequence1".equals(recovered.getIdentifier().getValue())
- || "sequence2".equals(recovered.getIdentifier().getValue()));
- if ("sequence1".equals(recovered.getIdentifier().getValue())) {
- assertFalse(recovered.isLastMessage());
- assertEquals(1, recovered.getCurrentMessageNr());
- assertNull(recovered.getExpires());
- assertNull(recovered.getOfferingSequenceIdentifier());
- assertEquals(ProtocolVariation.RM10WSA200408, recovered.getProtocol());
- } else {
- assertTrue(recovered.isLastMessage());
- assertEquals(10, recovered.getCurrentMessageNr());
- assertNotNull(recovered.getExpires());
- assertEquals("offeringSequence", recovered.getOfferingSequenceIdentifier().getValue());
- assertEquals(ProtocolVariation.RM11WSA200508, recovered.getProtocol());
- }
- }
- }
-
- private void checkRecoveredMessages(Collection<RMMessage> msgs) {
- for (RMMessage msg : msgs) {
- long mn = msg.getMessageNumber();
- assertTrue(mn == 1 || mn == 10);
- if (mn == 10) {
- assertEquals(NON_ANON_ACKS_TO, msg.getTo());
- } else {
- assertNull(msg.getTo());
- }
- try {
- InputStream actual = msg.getInputStream();
- assertEquals(new String("Message " + mn), IOUtils.readStringFromStream(actual));
- } catch (IOException e) {
- fail("failed to get the input stream");
- }
- }
+ @Override
+ protected void releaseConnection(Connection con) {
+ // the connection is held in the store, so not close it until the store is disposed.
}
}
\ No newline at end of file
Modified: cxf/branches/2.6.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTwoSchemasTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTwoSchemasTest.java?rev=1355016&r1=1355015&r2=1355016&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTwoSchemasTest.java (original)
+++ cxf/branches/2.6.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTwoSchemasTest.java Thu Jun 28 13:55:18 2012
@@ -37,7 +37,7 @@ import org.junit.Test;
*
*/
public class RMTxStoreTwoSchemasTest extends Assert {
- private static final String TEST_DB_NAME = "rmdb3";
+ private static final String TEST_DB_NAME = "rmdbts";
private static final String CLIENT_ENDPOINT_ID =
"{http://apache.org/greeter_control}GreeterService/GreeterPort";
Modified: cxf/branches/2.6.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreUpgradeTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreUpgradeTest.java?rev=1355016&r1=1355015&r2=1355016&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreUpgradeTest.java (original)
+++ cxf/branches/2.6.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreUpgradeTest.java Thu Jun 28 13:55:18 2012
@@ -69,7 +69,7 @@ public class RMTxStoreUpgradeTest extend
private static final String INBOUND_MSGS_TABLE_NAME = "CXF_RM_INBOUND_MESSAGES";
private static final String OUTBOUND_MSGS_TABLE_NAME = "CXF_RM_OUTBOUND_MESSAGES";
- private static final String TEST_DB_NAME = "rmdb2";
+ private static final String TEST_DB_NAME = "rmdbu";
@BeforeClass
public static void setUpOnce() {