41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
describe("ReportDispatcher", function() {
|
|
|
|
it("builds an interface of requested methods", function() {
|
|
var dispatcher = new j$.ReportDispatcher(['foo', 'bar', 'baz']);
|
|
|
|
expect(dispatcher.foo).toBeDefined();
|
|
expect(dispatcher.bar).toBeDefined();
|
|
expect(dispatcher.baz).toBeDefined();
|
|
});
|
|
|
|
it("dispatches requested methods to added reporters", function() {
|
|
var dispatcher = new j$.ReportDispatcher(['foo', 'bar']),
|
|
reporter = jasmine.createSpyObj('reporter', ['foo', 'bar']),
|
|
anotherReporter = jasmine.createSpyObj('reporter', ['foo', 'bar']);
|
|
|
|
dispatcher.addReporter(reporter);
|
|
dispatcher.addReporter(anotherReporter);
|
|
|
|
dispatcher.foo(123, 456);
|
|
|
|
expect(reporter.foo).toHaveBeenCalledWith(123, 456);
|
|
expect(anotherReporter.foo).toHaveBeenCalledWith(123, 456);
|
|
|
|
dispatcher.bar('a', 'b');
|
|
|
|
expect(reporter.bar).toHaveBeenCalledWith('a', 'b');
|
|
expect(anotherReporter.bar).toHaveBeenCalledWith('a', 'b');
|
|
});
|
|
|
|
it("does not dispatch to a reporter if the reporter doesn't accept the method", function() {
|
|
var dispatcher = new j$.ReportDispatcher(['foo']),
|
|
reporter = jasmine.createSpyObj('reporter', ['baz']);
|
|
|
|
dispatcher.addReporter(reporter);
|
|
|
|
expect(function() {
|
|
dispatcher.foo(123, 456);
|
|
}).not.toThrow();
|
|
});
|
|
});
|