clientOptions.setProperty(MessageContextConstants.TRANSPORT_URL,transportTo);
String sequenceKey = SandeshaUtil.getUUID();
clientOptions.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
ServiceClient serviceClient = new ServiceClient (configContext,null);
String acksTo = serviceClient.getMyEPR(Constants.TRANSPORT_HTTP).getAddress();
clientOptions.setProperty(SandeshaClientConstants.AcksTo,acksTo);
clientOptions.setTransportInProtocol(Constants.TRANSPORT_HTTP);
serviceClient.setOptions(clientOptions);
//serviceClient.
clientOptions.setTransportInProtocol(Constants.TRANSPORT_HTTP);
clientOptions.setUseSeparateListener(true);
serviceClient.setOptions(clientOptions);
TestCallback callback1 = new TestCallback ("Callback 1");
serviceClient.sendReceiveNonBlocking(getEchoOMBlock("echo1",sequenceKey),callback1);
clientOptions.setProperty(SandeshaClientConstants.LAST_MESSAGE, "true");
TestCallback callback2 = new TestCallback ("Callback 2");
serviceClient.sendReceiveNonBlocking (getEchoOMBlock("echo2",sequenceKey),callback2);
Thread.sleep(10000);
//testing outgoing sequence reports
SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
assertTrue(sequenceReport.getCompletedMessages().contains(new Long(1)));
assertTrue(sequenceReport.getCompletedMessages().contains(new Long(2)));
assertEquals(sequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
assertEquals(sequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
//testing incoming sequence reports
ArrayList incomingSequenceReports = SandeshaClient.getIncomingSequenceReports(configContext);
assertEquals(incomingSequenceReports.size(),1);
SequenceReport incomingSequenceReport = (SequenceReport) incomingSequenceReports.get(0);
assertEquals(incomingSequenceReport.getCompletedMessages().size(),2);
assertNotNull(incomingSequenceReport.getSequenceID());
assertEquals(incomingSequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_IN);
assertEquals(incomingSequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
assertNotNull(incomingSequenceReport.getInternalSequenceID());
assertEquals(incomingSequenceReport.getSequenceID(),incomingSequenceReport.getInternalSequenceID()); //for the incoming side, internalSequenceID==sequenceID
configContext.getListenerManager().stop();
serviceClient.cleanup();
}