@@ -411,6 +411,53 @@ transportTests = (type) ->
411411 clients .sender .sendTo ' outqueue' , sendQueue, payloads .two , (err ) ->
412412 return done err if err
413413
414+ describeIfSubscribeSupport ' subscribing to binding with srcQueue==tgtQueue' , ->
415+ sendQueue = ' sub-shared-37'
416+ receiveQueue = sendQueue
417+ binding = { type : ' pubsub' , src : sendQueue, tgt : receiveQueue }
418+ connectionData = []
419+ clients = null
420+
421+ # Should be a before, but the 'beforeEach' of higher scope are ran afterwards...
422+ setup = (done ) ->
423+ createConnectClients address, [' sender' , ' receiver' ], (err , c ) ->
424+ clients = c
425+ createQueues [
426+ [ clients .receiver , ' inqueue' , receiveQueue ]
427+ [ clients .sender , ' outqueue' , sendQueue ]
428+ ], (err ) ->
429+ chai .expect (err).to .not .exist
430+ broker .addBinding binding, (err ) ->
431+ chai .expect (err).to .be .a ' null'
432+ return done null
433+
434+ it ' should provide data sent on connection' , (done ) ->
435+ payloads =
436+ one : { foo : ' sub-106' }
437+ two : { bar : ' sub-107' }
438+
439+ onData = (bind , data ) ->
440+ chai .expect (bind .src ).to .equal binding .src
441+ chai .expect (bind .tgt ).to .equal binding .tgt
442+ connectionData .push data
443+ # wait until we've gotten two packets
444+ if connectionData .length == 2
445+ [one , two ] = connectionData
446+ chai .expect (one).to .eql payloads .one
447+ chai .expect (two).to .eql payloads .two
448+ return done null
449+ else if connectionData .length > 2
450+ return done new Error " Got more data than expected"
451+
452+ setup (err ) ->
453+ return done err if err
454+ broker .subscribeData binding, onData, (err ) ->
455+ return done err if err
456+ clients .sender .sendTo ' outqueue' , sendQueue, payloads .one , (err ) ->
457+ return done err if err
458+ clients .sender .sendTo ' outqueue' , sendQueue, payloads .two , (err ) ->
459+ return done err if err
460+
414461describe ' Transport' , ->
415462 Object .keys (transports).forEach (type) =>
416463 describe " #{ type} " , () ->
0 commit comments