}
@Test
public void testSendWithTxCommit() throws Exception {
StompClient client = new StompClient("stomp://" + url.getHost());
client.connect();
final Set<String> outbound = new HashSet<String>();
final CountDownLatch outboundLatch = new CountDownLatch(2);
SubscriptionBuilder builder = client.subscribe(DESTINATION_QUEUE_ONE);
builder.withMessageHandler(new MessageHandler() {
public void handle(StompMessage message) {
String content = message.getContentAsString();
outbound.add(content);
outboundLatch.countDown();
}
});
ClientSubscription subscription = builder.start();
ClientTransaction tx = client.begin();
tx.send(StompMessages.createStompMessage(DESTINATION_QUEUE_ONE, "msg1"));
tx.send(StompMessages.createStompMessage(DESTINATION_QUEUE_ONE, "msg2"));
tx.commit();
Assert.assertTrue("No latch timeout", outboundLatch.await(3, TimeUnit.SECONDS));
Assert.assertTrue("Contains msg1", outbound.contains("msg1"));
Assert.assertTrue("Contains msg2", outbound.contains("msg2"));
subscription.unsubscribe();
client.disconnect();
}