75 lines
1.4 KiB
JavaScript
75 lines
1.4 KiB
JavaScript
'use strict';
|
|
|
|
var Bus = require('../lib/bus');
|
|
var util = require('util');
|
|
var BaseService = require('../lib/service');
|
|
|
|
function TestService() {
|
|
this.subscriptions = {};
|
|
this.subscriptions['test/test'] = {};
|
|
}
|
|
util.inherits(TestService, BaseService);
|
|
|
|
TestService.prototype.subscribe = function(name, emitter) {
|
|
emitter.emit('Subscribe');
|
|
};
|
|
|
|
TestService.prototype.unsubscribe = function(name, emitter) {
|
|
emitter.emit('Unsubscribe');
|
|
};
|
|
|
|
TestService.prototype.getPublishEvents = function() {
|
|
return [
|
|
{
|
|
name: 'test/test',
|
|
scope: this,
|
|
subscribe: this.subscribe.bind(this, 'test/test'),
|
|
unsubscribe: this.unsubscribe.bind(this, 'test/test')
|
|
}
|
|
];
|
|
}
|
|
|
|
describe('Bus Functionality', function() {
|
|
var params;
|
|
before(function() {
|
|
params = {
|
|
node : {
|
|
services : [
|
|
new TestService()
|
|
]
|
|
}
|
|
}
|
|
});
|
|
|
|
after(function(done) {
|
|
done();
|
|
});
|
|
|
|
it('#subscribe', function(done) {
|
|
var bus = new Bus(params);
|
|
bus.on('Subscribe', function() {
|
|
done();
|
|
});
|
|
bus.subscribe('test/test');
|
|
});
|
|
|
|
it('#unsubscribe', function(done) {
|
|
var bus = new Bus(params);
|
|
bus.on('Unsubscribe', function() {
|
|
done();
|
|
});
|
|
bus.subscribe('test/test');
|
|
bus.unsubscribe('test/test');
|
|
});
|
|
|
|
it('#close', function(done) {
|
|
var bus = new Bus(params);
|
|
bus.on('Unsubscribe', function() {
|
|
done();
|
|
});
|
|
bus.close();
|
|
});
|
|
|
|
});
|
|
|