public void BaseInitialize() { // Create _eventStreamNameResolver = new EventStreamNameResolver(); EventStore = new TestEventStore(); _eventPublisher = MockRepository.GenerateMock <IEventPublisher>(); AggregateRepository = new AggregateRepository(EventStore, _eventStreamNameResolver, _eventPublisher); // Set up _eventPublisher.Expect(p => p.Publish(Arg <Guid> .Is.Anything, Arg <IEnumerable <IAggregateEvent> > .Is.Anything)) .WhenCalled( (invocation) => { Guid aggregateId = (Guid)invocation.Arguments[0]; IEnumerable <IAggregateEvent> @events = invocation.Arguments[1] as IEnumerable <IAggregateEvent>; RecordedEvents.AddRange( (@events ?? new IAggregateEvent[0]).Select( @event => new RecordedEvent() { AggregateId = aggregateId, Event = @event })); }); }
public AggregateRepository(IEventStore eventStore, IEventStreamNameResolver eventStreamNameResolver, IEventPublisher eventPublisher) { _eventStore = eventStore; _eventStreamNameResolver = eventStreamNameResolver; _eventPublisher = eventPublisher; }