public void CallTheInnerHandler() { var mockRepository = new MockRepository(); var @event = new TestEvent(); var eventHandler = mockRepository.StrictMock<IEventHandler<TestEvent>>(); var publisher = mockRepository.DynamicMock<IDomainEventsPublisher>(); var decorator = new DomainEventsPublisherEventHandler<TestEvent>(eventHandler, publisher); using (mockRepository.Record()) eventHandler .Expect(h => h.Handle(@event)) .Repeat.Once(); using (mockRepository.Playback()) decorator.Handle(@event); mockRepository.VerifyAll(); }
public void PublishThenClearTheDomainEvents() { var mockRepository = new MockRepository(); var @event = new TestEvent(); var eventHandler = mockRepository.DynamicMock<IEventHandler<TestEvent>>(); var publisher = mockRepository.StrictMock<IDomainEventsPublisher>(); var decorator = new DomainEventsPublisherEventHandler<TestEvent>(eventHandler, publisher); using (mockRepository.Record()) using (mockRepository.Ordered()) { eventHandler .Expect(h => h.Handle(@event)) .Repeat.Once(); publisher.Expect(p => p.Publish()); publisher.Expect(p => p.Clear()); } using (mockRepository.Playback()) decorator.Handle(@event); mockRepository.VerifyAll(); }