You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
920 B

require('./harness').run();
var queueName = 'node-unsubscribe-test';
var counter = 0;
connection.on('ready', function() {
var ex = connection.exchange('');
var q = connection.queue(queueName, {autoDelete: false}, function() {
ex.publish(queueName, {"msg": 'Message1'});
var defr = q.subscribe(function() { counter += 1; });
defr.addCallback(function(ok) {
// NB there is a race here, since the publish above and this
// unsubscribe are sent over different channels.
var defr2 = q.unsubscribe(ok.consumerTag);
defr2.addCallback(function() {
connection.publish(queueName, {"msg": 'Message2'});
// alas I cannot think of a way to synchronise on the queue
setTimeout(function() { q.destroy().addCallback(function() {
connection.end(); })}, 500);
});
});
});
});
process.addListener('exit', function() {
assert.equal(1, counter);
});