Skip to content

Commit 938ea3f

Browse files
committed
tests: Check adding then removing binding
1 parent 5f42ac1 commit 938ea3f

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

spec/01transport.coffee

+42
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,48 @@ transportTests = (type) ->
203203
clients.sender.sendTo 'outqueue', outQueue, payload, (err) ->
204204
chai.expect(err).to.be.a 'null'
205205

206+
describe 'outqueue bound to inqueue then removed', ->
207+
it 'sending to inqueue, show up on outqueue', (done) ->
208+
payload = { foo: 'bar922' }
209+
inQueue = 'inqueue922'
210+
outQueue = 'outqueue922'
211+
createConnectClients address, ['sender', 'receiver'], (err, clients) ->
212+
createQueues [
213+
[ clients.receiver, 'inqueue', inQueue ]
214+
[ clients.sender, 'outqueue', outQueue ]
215+
], (err) ->
216+
chai.expect(err).to.not.exist
217+
218+
binding = { type:'pubsub', src:outQueue, tgt:inQueue }
219+
bindingRemoved = false
220+
221+
onReceive = (msg) ->
222+
if bindingRemoved
223+
done new Error "Received data on removed binding"
224+
done = null
225+
return
226+
227+
clients.receiver.ackMessage msg
228+
chai.expect(msg).to.include.keys 'data'
229+
chai.expect(msg.data).to.eql payload
230+
bindingRemoved = true
231+
broker.removeBinding binding, (err) ->
232+
chai.expect(err).to.be.a 'null'
233+
clients.sender.sendTo 'outqueue', outQueue, payload, (err) ->
234+
chai.expect(err).to.be.a 'null'
235+
setTimeout () ->
236+
done null if done
237+
done = null
238+
return
239+
, 300
240+
241+
clients.receiver.subscribeToQueue inQueue, onReceive, (err) ->
242+
chai.expect(err).to.be.a 'null'
243+
broker.addBinding binding, (err) ->
244+
chai.expect(err).to.be.a 'null'
245+
clients.sender.sendTo 'outqueue', outQueue, payload, (err) ->
246+
chai.expect(err).to.be.a 'null'
247+
206248

207249
describe 'multiple outqueues bound to one inqueue', ->
208250
it 'all sent on outqueues shows up on inqueue', (done) ->

0 commit comments

Comments
 (0)