@@ -203,6 +203,48 @@ transportTests = (type) ->
203
203
clients .sender .sendTo ' outqueue' , outQueue, payload, (err ) ->
204
204
chai .expect (err).to .be .a ' null'
205
205
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
+
206
248
207
249
describe ' multiple outqueues bound to one inqueue' , ->
208
250
it ' all sent on outqueues shows up on inqueue' , (done ) ->
0 commit comments