Skip to content

Commit 078cc10

Browse files
committed
tests: Also check subscribing for srcQueue==tgtQueue case
Common in exising, pre-MsgFlo, MQTT networks (hardcoded receiver)
1 parent 6793853 commit 078cc10

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

spec/01transport.coffee

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
414461
describe 'Transport', ->
415462
Object.keys(transports).forEach (type) =>
416463
describe "#{type}", () ->

0 commit comments

Comments
 (0)