1 |
|
2 | chai = require 'chai'
|
3 | sinonChai = require 'sinon-chai'
|
4 | chai.use(sinonChai)
|
5 | global.expect = chai.expect
|
6 |
|
7 | winston = require 'winston'
|
8 | amqp = require('amqp-connection-manager')
|
9 | amqpUrl = "amqp://guest:guest@localhost:5672"
|
10 | q = require 'q'
|
11 |
|
12 | uniqueId = -> id = ""; id += Math.random().toString(36).substr(2) while id.length < 32; id.substr 0, 32
|
13 |
|
14 | logger = (level = 'debug') ->
|
15 | winston.createLogger({
|
16 | transports: [ new winston.transports.Console level: level, colorize: true, timestamp: true ]
|
17 | })
|
18 |
|
19 | deleteExchange = (connection, exchangeName) ->
|
20 | q(new Promise((resolve, reject) ->
|
21 | connection.createChannel({
|
22 | setup: (amqpChannel) ->
|
23 | amqpChannel.deleteExchange(exchangeName)
|
24 | resolve()
|
25 | })
|
26 | ))
|
27 |
|
28 | connect = ->
|
29 | q(amqp.connect(amqpUrl))
|
30 |
|
31 | deliver = (connection, queue, topicName, message) ->
|
32 | q(connection.createChannel()).then (channel) ->
|
33 | messageToSend = new Buffer(JSON.stringify(message))
|
34 | channel.publish(topicName, queue, messageToSend)
|
35 | channel.sendToQueue(queue, messageToSend)
|
36 | channel
|
37 |
|
38 | exports.logger = logger
|
39 | exports.deleteExchange = deleteExchange
|
40 | exports.connect = connect
|
41 | exports.deliver = deliver
|
42 | exports.amqpUrl = amqpUrl
|
43 | exports.uniqueId = uniqueId
|