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.
44 lines
1.9 KiB
44 lines
1.9 KiB
require('./harness').run(); |
|
var testName = __filename.replace(__dirname+'/','').replace('.js',''); |
|
var msgsReceived = 0; |
|
connection.addListener('ready', function () { |
|
puts("connected to " + connection.serverProperties.product); |
|
var callbackCalled = false; |
|
|
|
connection.exchange('node.'+testName+'.dstExchange', {type: 'topic', autoDelete: false}, function(dstExchange) { |
|
connection.exchange('node.'+testName+'.srcExchange', {type: 'topic', autoDelete: false}, function(srcExchange) { |
|
dstExchange.bind(srcExchange, '#', function () { |
|
connection.queue( 'node.'+testName+'.nestedExchangeQueue', { durable: false, autoDelete : false }, function (queue) { |
|
queue.bind(dstExchange, '#', function () { |
|
queue.subscribe(function ( msg ) { |
|
puts(msg.data.toString()); |
|
msgsReceived++; |
|
}); |
|
srcExchange.publish('node.'+testName+'.nestedExchangeTest', |
|
'Queue received message from non-directly-bound exchange.'); |
|
|
|
// Unbinding the srcExchange will delete it if autoDelete:true |
|
dstExchange.unbind(srcExchange,'#', function () { |
|
srcExchange.publish('node.'+testName+'.nestedExchangeTest', |
|
'You should NOT see this.'); |
|
}); |
|
setTimeout(function () { |
|
// wait one second to receive the message, then quit |
|
queue.destroy(); |
|
dstExchange.destroy(); |
|
// If autoDelete:true on srcExchange, you can get a writeAfterEnd error. Comment out |
|
// connection.end() to find the real error - the srcExchange doesn't exist. |
|
// See http://www.rabbitmq.com/e2e.html |
|
srcExchange.destroy(); |
|
connection.end(); |
|
}, 1000); |
|
}); |
|
}); |
|
}); |
|
}); |
|
}); |
|
}); |
|
|
|
process.addListener('exit', function() { |
|
assert.equal(1, msgsReceived); |
|
}); |