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 'amqplib'
|
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 | new winston.Logger
|
16 | transports: [ new winston.transports.Console level: level, colorize: true, timestamp: true ]
|
17 |
|
18 | deleteExchange = (connection, exchangeName) ->
|
19 | q(connection.createChannel()).then (channel) ->
|
20 | channel.deleteExchange(exchangeName)
|
21 |
|
22 | connect = ->
|
23 | q(amqp.connect(amqpUrl))
|
24 |
|
25 | deliver = (connection, queue, topicName, message) ->
|
26 | q(connection.createChannel()).then (channel) ->
|
27 | messageToSend = new Buffer(JSON.stringify(message))
|
28 | channel.publish(topicName, queue, messageToSend)
|
29 | channel.sendToQueue(queue, messageToSend)
|
30 | channel
|
31 |
|
32 | exports.logger = logger
|
33 | exports.deleteExchange = deleteExchange
|
34 | exports.connect = connect
|
35 | exports.deliver = deliver
|
36 | exports.amqpUrl = amqpUrl
|
37 | exports.uniqueId = uniqueId
|