Repository: cxf Updated Branches: refs/heads/3.0.x-fixes 961362dec -> c887ba7a8
[CXF-6519] add a systest case using RM11 CloseSequence Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/d3838cdd Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/d3838cdd Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/d3838cdd Branch: refs/heads/3.0.x-fixes Commit: d3838cdd8f601e100eff23dcaacf1fb28a97fd02 Parents: 961362d Author: Akitoshi Yoshida <[email protected]> Authored: Thu Aug 6 22:31:35 2015 +0200 Committer: Akitoshi Yoshida <[email protected]> Committed: Wed Aug 12 12:45:41 2015 +0200 ---------------------------------------------------------------------- .../org/apache/cxf/ws/rm/SourceSequence.java | 3 ++ .../systest/ws/rm/ProtocolVariationsTest.java | 53 +++++++++++--------- 2 files changed, 32 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/d3838cdd/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/SourceSequence.java ---------------------------------------------------------------------- diff --git a/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/SourceSequence.java b/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/SourceSequence.java index cc3e491..4eb5f92 100644 --- a/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/SourceSequence.java +++ b/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/SourceSequence.java @@ -173,6 +173,9 @@ public class SourceSequence extends AbstractSequence { RMEndpoint rme = source.getReliableEndpoint(); Proxy proxy = rme.getProxy(); // REVIST for rm 1.1, provide an option to how the close and terminate messages are sent + if (ProtocolVariation.RM11WSA200508 == getProtocol()) { + proxy.lastMessage(this); + } proxy.terminate(this); source.removeSequence(this); } http://git-wip-us.apache.org/repos/asf/cxf/blob/d3838cdd/systests/ws-rm/src/test/java/org/apache/cxf/systest/ws/rm/ProtocolVariationsTest.java ---------------------------------------------------------------------- diff --git a/systests/ws-rm/src/test/java/org/apache/cxf/systest/ws/rm/ProtocolVariationsTest.java b/systests/ws-rm/src/test/java/org/apache/cxf/systest/ws/rm/ProtocolVariationsTest.java index 034ff1a..b18c6ed 100644 --- a/systests/ws-rm/src/test/java/org/apache/cxf/systest/ws/rm/ProtocolVariationsTest.java +++ b/systests/ws-rm/src/test/java/org/apache/cxf/systest/ws/rm/ProtocolVariationsTest.java @@ -414,40 +414,45 @@ public class ProtocolVariationsTest extends AbstractBusClientServerTestBase { private void verifyTerminateSequence(String wsaUri, RMConstants consts) throws Exception { - if (RM11Constants.NAMESPACE_URI.equals(consts.getWSRMNamespace())) { - awaitMessages(3, 3); - } else { - awaitMessages(3, 2); - } - MessageFlow mf = new MessageFlow(outRecorder.getOutboundMessages(), - inRecorder.getInboundMessages(), wsaUri, consts.getWSRMNamespace()); - - mf.verifyMessages(3, true); - String[] expectedActions = new String[] {consts.getCreateSequenceAction(), - GREETME_ONEWAY_ACTION, - consts.getTerminateSequenceAction()}; - mf.verifyActions(expectedActions, true); - mf.verifyMessageNumbers(new String[] {null, "1", null}, true); + inRecorder.getInboundMessages(), wsaUri, consts.getWSRMNamespace()); if (RM11Constants.NAMESPACE_URI.equals(consts.getWSRMNamespace())) { + awaitMessages(4, 4); + + mf.verifyMessages(4, true); + String[] expectedActions = new String[] {consts.getCreateSequenceAction(), + GREETME_ONEWAY_ACTION, + consts.getCloseSequenceAction(), + consts.getTerminateSequenceAction()}; + mf.verifyActions(expectedActions, true); + mf.verifyMessageNumbers(new String[] {null, "1", null, null}, true); + // no LastMessage - mf.verifyLastMessage(new boolean[] {false, false, false}, true); - } else { - // uses LastMessage - mf.verifyLastMessage(new boolean[] {false, true, false}, true); - } + mf.verifyLastMessage(new boolean[] {false, false, false, false}, true); - if (RM11Constants.NAMESPACE_URI.equals(consts.getWSRMNamespace())) { - // CSR, ACK, TSR - mf.verifyMessages(3, false); + // CrSR, ACK, ClSR, TSR + mf.verifyMessages(4, false); expectedActions = new String[] {consts.getCreateSequenceResponseAction(), consts.getSequenceAckAction(), + RM11Constants.INSTANCE.getCloseSequenceResponseAction(), RM11Constants.INSTANCE.getTerminateSequenceResponseAction()}; mf.verifyActions(expectedActions, false); - mf.verifyAcknowledgements(new boolean[] {false, true, false}, false); + mf.verifyAcknowledgements(new boolean[] {false, true, false, false}, false); } else { - // CSR, ACK, PR + awaitMessages(3, 2); + + mf.verifyMessages(3, true); + String[] expectedActions = new String[] {consts.getCreateSequenceAction(), + GREETME_ONEWAY_ACTION, + consts.getTerminateSequenceAction()}; + mf.verifyActions(expectedActions, true); + mf.verifyMessageNumbers(new String[] {null, "1", null}, true); + + // uses LastMessage + mf.verifyLastMessage(new boolean[] {false, true, false}, true); + + // CrSR, ACK, PR mf.verifyMessages(2, false); expectedActions = new String[] {consts.getCreateSequenceResponseAction(), consts.getSequenceAckAction()};
