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.

60 lines
1.5 KiB

require('longjohn');
var _ = require('lodash');
// Parse incoming options.
var optimist = require('optimist')
.usage('Run a test.\nUsage: $0')
.alias('h', 'host')
.describe('h', 'Specify a hostname to connect to.')
.default('h', 'localhost')
.alias('p', 'port')
.describe('p', 'Specify a port to connect to.')
.default('p', 5672)
.alias('d', 'debug')
.describe('d', 'Show debug output during test.')
.default('d', false)
.describe('help', 'Display this help message.');
var argv = optimist.argv;
if (argv.help) {
optimist.showHelp();
process.exit(0);
}
if (argv.debug) {
process.env['NODE_DEBUG_AMQP'] = true;
}
global.util = require('util');
global.puts = console.log;
global.assert = require('assert');
global.amqp = require('../amqp');
global.options = _.assignIn(global.options || {}, argv);
global.implOpts = {
defaultExchangeName: 'amq.topic'
};
var harness = module.exports = {
createConnection: function(opts, implOpts){
opts = _.defaults(opts || {}, global.options);
implOpts = _.defaults(implOpts || {}, global.implOpts);
return amqp.createConnection(options, implOpts);
},
run: function(opts, implOpts) {
global.connection = harness.createConnection(opts, implOpts);
global.connection.addListener('error', global.errorCallback);
global.connection.addListener('close', function (e) {
console.log('connection closed.');
});
return global.connection;
}
};
global.errorCallback = function(e) {
throw e;
};