Example #1
0
        public void It_should_call_the_converter_for_each_event()
        {
            var store = MockRepository.GenerateMock<IEventStore>();
            var bus = MockRepository.GenerateMock<IEventBus>();
            var converter = MockRepository.GenerateMock<IEventConverter<DomainEvent, DomainEvent>>();

            Func<DomainEvent, DomainEvent> returnFirstParam = (x) => x;
            converter.Stub(c => c.Convert(null)).IgnoreArguments().Do(returnFirstParam);

            var aggId = Guid.NewGuid();
            var eventsInTheStore = new DomainEvent[]
            {
                new FooEvent(Guid.NewGuid(), aggId, 1, DateTime.UtcNow),
                new BarEvent(Guid.NewGuid(), aggId, 2, DateTime.UtcNow)
            };
            store.Expect(s => s.GetAllEvents(aggId)).Return(eventsInTheStore);

            var repository = new DomainRepository(store, bus, null, converter);

            repository.GetById<MyAggregateRoot>(aggId);

            converter.AssertWasCalled(c => c.Convert(null),options => options.IgnoreArguments().Repeat.Twice());
        }