UNPKG

eventric-testing

Version:
55 lines (42 loc) 1.5 kB
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;