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.
59 lines
1.9 KiB
59 lines
1.9 KiB
require('./harness').run(); |
|
|
|
var recvCount = 0; |
|
|
|
connection.addListener('ready', function () { |
|
puts("connected to " + connection.serverProperties.product); |
|
|
|
var exchange1 = connection.exchange('node-conn-share1', {type: 'direct'}); |
|
var exchange2 = connection.exchange('node-conn-share2', {type: 'direct'}); |
|
|
|
assert.equal(2, Object.keys(connection.exchanges).length); |
|
|
|
exchange2.destroy(); // checked at end |
|
|
|
var q1 = connection.queue('node-q1', function() { |
|
var q2 = connection.queue('node-q2', function() { |
|
|
|
q1.bind(exchange1, "node-consumer-1"); |
|
q1.on('queueBindOk', function() { |
|
q2.bind(exchange1, "node-consumer-2"); |
|
q2.on('queueBindOk', function() { |
|
assert.equal(2, Object.keys(connection.queues).length); |
|
|
|
q1.on('basicConsumeOk', function () { |
|
exchange1.publish("node-consumer-1", 'foo'); |
|
exchange1.publish("node-consumer-1", 'foo'); |
|
exchange1.publish("node-consumer-2", 'foo'); |
|
}); |
|
|
|
q2.on('basicConsumeOk', function () { |
|
exchange1.publish("node-consumer-1", 'foo'); |
|
exchange1.publish("node-consumer-2", 'foo'); |
|
|
|
setTimeout(function () { |
|
// wait one second to receive the message, then quit |
|
q2.destroy(); |
|
connection.end(); |
|
}, 1000); |
|
}); |
|
|
|
q1.subscribe(function (m, headers, deliveryInfo) { |
|
assert.equal('node-consumer-1', deliveryInfo.routingKey); |
|
recvCount++; |
|
}); |
|
q2.subscribe(function (m, headers, deliveryInfo) { |
|
assert.equal('node-consumer-2', deliveryInfo.routingKey); |
|
recvCount++; |
|
}) |
|
}); |
|
}); |
|
}); |
|
}); |
|
}); |
|
|
|
process.addListener('exit', function () { |
|
assert.equal(1, Object.keys(connection.exchanges).length); |
|
assert.equal(1, Object.keys(connection.queues).length); |
|
assert.equal(5, recvCount); |
|
});
|
|
|