@wiz-code/async-fsm
Version:
Finite StateMachine JavaScript Library
35 lines (24 loc) • 952 B
JavaScript
var Subject = require('../src/subject');
var assert = require('assert');
var completedTests = 0;
var result = '';
var subject = new Subject();
var hogeObj = {
update: function (hoge) {result = hoge;}
};
subject.setObserverType(['hoge', 'fuga']);
assert.notEqual(subject._observers['fuga'], undefined, 'this type is not found.');
completedTests++;
subject.addObserver('hoge', hogeObj);
assert.equal(subject.countObservers('hoge'), 1, 'Number of observers should be 1.');
completedTests++;
assert.ok(subject.hasObserver('hoge', hogeObj), 'subject should have hogeObj.');
completedTests++;
subject.removeObserver('hoge', hogeObj);
assert.equal(subject.hasObserver('hoge', hogeObj), false, 'subject shouldn\'t have hogeObj.');
completedTests++;
subject.addObserver('hoge', hogeObj);
subject.notify('hoge', 'hoge');
assert.equal(result, 'hoge', 'result should be \'hoge\'.');
completedTests++;
console.log('completedTests: ', completedTests);