module("Stomp Transaction"); test("Send a message in a transaction and abort", function() { var body = Math.random(); var body2 = Math.random(); var client = Stomp.client(TEST.url); client.debug = TEST.debug; client.connect(TEST.login, TEST.password, function() { client.subscribe(TEST.destination, function(message) { start(); // we should receive the 2nd message outside the transaction equals(message.body, body2); client.disconnect(); }); var tx = client.begin("txid_" + Math.random()); client.send(TEST.destination, {transaction: tx.id}, body); tx.abort(); client.send(TEST.destination, {}, body2); }); stop(TEST.timeout); }); test("Send a message in a transaction and commit", function() { var body = Math.random(); var client = Stomp.client(TEST.url); client.debug = TEST.debug; client.connect(TEST.login, TEST.password, function() { client.subscribe(TEST.destination, function(message) { start(); equals(message.body, body); client.disconnect(); }); var tx = client.begin(); client.send(TEST.destination, {transaction: tx.id}, body); tx.commit(); }); stop(TEST.timeout); }); test("Send a message outside a transaction and abort", function() { var body = Math.random(); var client = Stomp.client(TEST.url); client.debug = TEST.debug; client.connect(TEST.login, TEST.password, function() { client.subscribe(TEST.destination, function(message) { start(); // we should receive the message since it was sent outside the transaction equals(message.body, body); client.disconnect(); }); var tx = client.begin(); client.send(TEST.destination, {}, body); tx.abort(); }); stop(TEST.timeout); });