bitcore-node-zcash/test/bus.unit.js

132 lines
3.9 KiB
JavaScript
Raw Normal View History

2015-07-29 14:22:34 -07:00
'use strict';
var should = require('chai').should();
var sinon = require('sinon');
var Bus = require('../lib/bus');
describe('Bus', function() {
describe('#subscribe', function() {
2015-08-31 06:00:00 -07:00
it('will call db and services subscribe function with the correct arguments', function() {
2015-08-06 13:19:36 -07:00
var subscribeDb = sinon.spy();
2015-08-31 06:00:00 -07:00
var subscribeService = sinon.spy();
2015-08-28 13:16:51 -07:00
var node = {
2015-08-31 06:00:00 -07:00
services: {
db: {
getPublishEvents: sinon.stub().returns([
{
name: 'dbtest',
scope: this,
subscribe: subscribeDb
}
])
},
service1: {
2015-07-29 14:22:34 -07:00
getPublishEvents: sinon.stub().returns([
{
name: 'test',
scope: this,
2015-08-31 06:00:00 -07:00
subscribe: subscribeService,
2015-07-29 14:22:34 -07:00
}
])
}
2015-08-28 13:16:51 -07:00
}
2015-07-29 14:22:34 -07:00
};
2015-08-28 13:16:51 -07:00
var bus = new Bus({node: node});
2015-08-06 13:19:36 -07:00
bus.subscribe('dbtest', 'a', 'b', 'c');
2015-07-29 14:22:34 -07:00
bus.subscribe('test', 'a', 'b', 'c');
2015-08-31 06:00:00 -07:00
subscribeService.callCount.should.equal(1);
2015-08-06 13:19:36 -07:00
subscribeDb.callCount.should.equal(1);
subscribeDb.args[0][0].should.equal(bus);
subscribeDb.args[0][1].should.equal('a');
subscribeDb.args[0][2].should.equal('b');
subscribeDb.args[0][3].should.equal('c');
2015-08-31 06:00:00 -07:00
subscribeService.args[0][0].should.equal(bus);
subscribeService.args[0][1].should.equal('a');
subscribeService.args[0][2].should.equal('b');
subscribeService.args[0][3].should.equal('c');
2015-07-29 14:22:34 -07:00
});
});
describe('#unsubscribe', function() {
2015-08-31 06:00:00 -07:00
it('will call db and services unsubscribe function with the correct arguments', function() {
2015-08-06 13:19:36 -07:00
var unsubscribeDb = sinon.spy();
2015-08-31 06:00:00 -07:00
var unsubscribeService = sinon.spy();
2015-08-28 13:16:51 -07:00
var node = {
2015-08-31 06:00:00 -07:00
services: {
db: {
getPublishEvents: sinon.stub().returns([
{
name: 'dbtest',
scope: this,
unsubscribe: unsubscribeDb
}
])
},
service1: {
2015-07-29 14:22:34 -07:00
getPublishEvents: sinon.stub().returns([
{
name: 'test',
scope: this,
2015-08-31 06:00:00 -07:00
unsubscribe: unsubscribeService,
2015-07-29 14:22:34 -07:00
}
])
}
2015-08-28 13:16:51 -07:00
}
2015-07-29 14:22:34 -07:00
};
2015-08-28 13:16:51 -07:00
var bus = new Bus({node: node});
2015-08-06 13:19:36 -07:00
bus.unsubscribe('dbtest', 'a', 'b', 'c');
2015-07-29 14:22:34 -07:00
bus.unsubscribe('test', 'a', 'b', 'c');
2015-08-31 06:00:00 -07:00
unsubscribeService.callCount.should.equal(1);
2015-08-06 13:19:36 -07:00
unsubscribeDb.callCount.should.equal(1);
unsubscribeDb.args[0][0].should.equal(bus);
unsubscribeDb.args[0][1].should.equal('a');
unsubscribeDb.args[0][2].should.equal('b');
unsubscribeDb.args[0][3].should.equal('c');
2015-08-31 06:00:00 -07:00
unsubscribeService.args[0][0].should.equal(bus);
unsubscribeService.args[0][1].should.equal('a');
unsubscribeService.args[0][2].should.equal('b');
unsubscribeService.args[0][3].should.equal('c');
2015-07-29 14:22:34 -07:00
});
});
describe('#close', function() {
it('will unsubscribe from all events', function() {
2015-08-06 13:19:36 -07:00
var unsubscribeDb = sinon.spy();
2015-08-31 06:00:00 -07:00
var unsubscribeService = sinon.spy();
2015-08-28 13:16:51 -07:00
var node = {
2015-08-31 06:00:00 -07:00
services: {
db: {
getPublishEvents: sinon.stub().returns([
2015-08-31 06:00:00 -07:00
{
name: 'dbtest',
scope: this,
unsubscribe: unsubscribeDb
}
])
},
service1: {
getPublishEvents: sinon.stub().returns([
{
name: 'test',
scope: this,
unsubscribe: unsubscribeService
}
])
}
2015-08-28 13:16:51 -07:00
}
};
2015-08-28 13:16:51 -07:00
var bus = new Bus({node: node});
bus.close();
2015-08-06 13:19:36 -07:00
unsubscribeDb.callCount.should.equal(1);
2015-08-31 06:00:00 -07:00
unsubscribeService.callCount.should.equal(1);
2015-08-06 13:19:36 -07:00
unsubscribeDb.args[0].length.should.equal(1);
2015-08-31 06:00:00 -07:00
unsubscribeDb.args[0][0].should.equal(bus);
unsubscribeService.args[0].length.should.equal(1);
unsubscribeService.args[0][0].should.equal(bus);
});
});
2015-07-29 14:22:34 -07:00
});