stomp-websocket
Version:
STOMP for JavaScript apps (Web browser & node.js)
73 lines (59 loc) • 1.96 kB
JavaScript
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);
});