use of org.apache.cxf.ws.rm.v200502.Identifier in project cxf by apache.
the class RetransmissionQueueImplTest method setUpSequenceType.
private SequenceType setUpSequenceType(Message message, String sid, Long messageNumber) {
RMProperties rmps = createMock(RMProperties.class);
if (message != null) {
message.get(RMMessageConstants.RM_PROPERTIES_OUTBOUND);
EasyMock.expectLastCall().andReturn(rmps);
}
properties.add(rmps);
SequenceType sequence = createMock(SequenceType.class);
if (message != null) {
rmps.getSequence();
EasyMock.expectLastCall().andReturn(sequence);
}
if (messageNumber != null) {
EasyMock.expect(sequence.getMessageNumber()).andReturn(messageNumber).anyTimes();
}
Identifier id = createMock(Identifier.class);
EasyMock.expect(sequence.getIdentifier()).andReturn(id).anyTimes();
EasyMock.expect(id.getValue()).andReturn(sid).anyTimes();
identifiers.add(id);
sequences.add(sequence);
return sequence;
}
use of org.apache.cxf.ws.rm.v200502.Identifier in project cxf by apache.
the class SoapFaultFactoryTest method createSoap12Fault.
@Test
public void createSoap12Fault() {
SoapBinding sb = control.createMock(SoapBinding.class);
EasyMock.expect(sb.getSoapVersion()).andReturn(Soap12.getInstance());
Identifier id = new Identifier();
id.setValue("sid");
setupSequenceFault(true, RM10Constants.UNKNOWN_SEQUENCE_FAULT_QNAME, id);
control.replay();
SoapFaultFactory factory = new SoapFaultFactory(sb);
SoapFault fault = (SoapFault) factory.createFault(sf, createInboundMessage());
assertEquals("reason", fault.getReason());
assertEquals(Soap12.getInstance().getSender(), fault.getFaultCode());
assertEquals(RM10Constants.UNKNOWN_SEQUENCE_FAULT_QNAME, fault.getSubCode());
Element elem = fault.getDetail();
assertEquals(RM10Constants.NAMESPACE_URI, elem.getNamespaceURI());
assertEquals("Identifier", elem.getLocalName());
assertNull(fault.getCause());
control.verify();
}
use of org.apache.cxf.ws.rm.v200502.Identifier in project cxf by apache.
the class RMTxStoreTest method testReconnect.
@Test
public void testReconnect() throws Exception {
// set the initial reconnect delay to 100 msec for testing
long ird = store.getInitialReconnectDelay();
store.setInitialReconnectDelay(100);
SourceSequence seq = control.createMock(SourceSequence.class);
Identifier sid1 = RMUtils.getWSRMFactory().createIdentifier();
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);
// intentionally invalidate the connection
try {
store.getConnection().close();
} catch (SQLException ex) {
// ignore
}
control.replay();
try {
store.createSourceSequence(seq);
fail("Expected RMStoreException was not thrown.");
} catch (RMStoreException ex) {
SQLException se = (SQLException) ex.getCause();
// expects a transient or non-transient connection exception
assertTrue(se.getSQLState().startsWith("08"));
}
// wait 200 msecs to make sure an reconnect is attempted
Thread.sleep(200);
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();
store.createSourceSequence(seq);
control.verify();
// revert to the old initial reconnect delay
store.setInitialReconnectDelay(ird);
store.removeSourceSequence(sid1);
}
use of org.apache.cxf.ws.rm.v200502.Identifier in project cxf by apache.
the class RMTxStoreTestBase method testUpdateSourceSequence.
@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();
Connection con = getConnection();
try {
store.beginTransaction();
store.updateSourceSequence(con, seq);
store.abort(con);
} finally {
releaseConnection(con);
}
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();
con = getConnection();
try {
store.beginTransaction();
store.updateSourceSequence(con, seq);
store.abort(con);
} finally {
releaseConnection(con);
}
store.removeSourceSequence(sid1);
}
use of org.apache.cxf.ws.rm.v200502.Identifier in project cxf by apache.
the class RMTxStoreTestBase method testGetSourceSequences.
@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);
}
}
}
Aggregations