eventric-testing
Version:
Testing helpers for eventric.js
37 lines (24 loc) • 968 B
text/coffeescript
eventric = require 'eventric'
Aggregate = eventric.Aggregate
Context = eventric.Context
stubFactory = require './stub_factory'
class AggregateFactory
fakeAggregate: (AggregateClass) ->
aggregate = new AggregateClass
aggregate.$emitDomainEvent = stubFactory.stub()
aggregate
wiredAggregate: (AggregateClass, domainEvents) ->
aggregate = @instantiateAggregateWithFakeContext AggregateClass, domainEvents
aggregate.instance
instantiateAggregateWithFakeContext: (AggregateClass, domainEvents) ->
fakeContext = @_createFakeContext domainEvents
new Aggregate fakeContext, eventric, 'Aggregate', AggregateClass
_createFakeContext: (domainEvents) ->
contextFake =
_eventric: eventric
name: 'eventric-testing'
name: contextFake.name
getDomainEvent: (name) -> domainEvents[name]
createDomainEvent: ->
Context::createDomainEvent.apply contextFake, arguments
module.exports = new AggregateFactory