greeter.greetMe("three");
greeter.greetMe("four");
awaitMessages(7, 10, 10000);
MessageFlow mf = new MessageFlow(outRecorder.getOutboundMessages(), inRecorder.getInboundMessages());
// Expected outbound:
// CreateSequence
// + 4 greetMe messages
// + 2 resends
String[] expectedActions = new String[7];
expectedActions[0] = RMConstants.getCreateSequenceAction();
for (int i = 1; i < expectedActions.length; i++) {
expectedActions[i] = GREETME_ACTION;
}
mf.verifyActions(expectedActions, true);
mf.verifyMessageNumbers(new String[] {null, "1", "2", "2", "3", "4", "4"}, true);
mf.verifyLastMessage(new boolean[7], true);
boolean[] expectedAcks = new boolean[7];
for (int i = 2; i < expectedAcks.length; i++) {
expectedAcks[i] = true;
}
mf.verifyAcknowledgements(expectedAcks , true);
// Expected inbound:
// createSequenceResponse
// + 4 greetMeResponse actions (to original or resent)
// + 5 partial responses (to CSR & each of the initial greetMe messages)
// + at least 2 further partial response (for each of the resends)
mf.verifyPartialResponses(5);
mf.purgePartialResponses();
expectedActions = new String[] {RMConstants.getCreateSequenceResponseAction(),
GREETME_RESPONSE_ACTION, GREETME_RESPONSE_ACTION,
GREETME_RESPONSE_ACTION, GREETME_RESPONSE_ACTION};
mf.verifyActions(expectedActions, false);
mf.verifyMessageNumbers(new String[] {null, "1", "2", "3", "4"}, false);
mf.verifyAcknowledgements(new boolean[] {false, true, true, true, true}, false);
}