eventric-testing
Version:
Testing helpers for eventric.js
55 lines (42 loc) • 1.5 kB
JavaScript
var Aggregate, AggregateFactory, Context, eventric, stubFactory;
eventric = require('eventric');
Aggregate = eventric.Aggregate;
Context = eventric.Context;
stubFactory = require('./stub_factory');
AggregateFactory = (function() {
function AggregateFactory() {}
AggregateFactory.prototype.fakeAggregate = function(AggregateClass) {
var aggregate;
aggregate = new AggregateClass;
aggregate.$emitDomainEvent = stubFactory.stub();
return aggregate;
};
AggregateFactory.prototype.wiredAggregate = function(AggregateClass, domainEvents) {
var aggregate;
aggregate = this.instantiateAggregateWithFakeContext(AggregateClass, domainEvents);
return aggregate.instance;
};
AggregateFactory.prototype.instantiateAggregateWithFakeContext = function(AggregateClass, domainEvents) {
var fakeContext;
fakeContext = this._createFakeContext(domainEvents);
return new Aggregate(fakeContext, eventric, 'Aggregate', AggregateClass);
};
AggregateFactory.prototype._createFakeContext = function(domainEvents) {
var contextFake;
contextFake = {
_eventric: eventric,
name: 'eventric-testing'
};
return {
name: contextFake.name,
getDomainEvent: function(name) {
return domainEvents[name];
},
createDomainEvent: function() {
return Context.prototype.createDomainEvent.apply(contextFake, arguments);
}
};
};
return AggregateFactory;
})();
module.exports = new AggregateFactory;