public void WhenEntityExposesEvent_ThenRepositoryPublishesIt() { var busMock = new Mock <IEventBus>(); var events = new List <IEvent>(); busMock.Setup(x => x.Publish(It.IsAny <IEnumerable <Envelope <IEvent> > >())) .Callback <IEnumerable <Envelope <IEvent> > >(x => events.AddRange(x.Select(e => e.Body))); var @event = new TestEvent(); using (var context = new SqlDataContext <TestEventPublishingAggregateRoot>(() => new TestDbContext(), busMock.Object)) { var aggregate = new TestEventPublishingAggregateRoot(Guid.NewGuid()); aggregate.AddEvent(@event); context.Save(aggregate); } Assert.AreEqual(1, events.Count); Assert.IsTrue(events.Contains(@event)); }
public void WhenEntityExposesEvent_ThenRepositoryPublishesIt() { var busMock = new Mock<IEventBus>(); var events = new List<IEvent>(); busMock .Setup(x => x.Publish(It.IsAny<IEnumerable<Envelope<IEvent>>>())) .Callback<IEnumerable<Envelope<IEvent>>>(x => events.AddRange(x.Select(e => e.Body))); var @event = new TestEvent(); using (var context = new SqlDataContext<TestEventPublishingAggregateRoot>(() => new TestDbContext(), busMock.Object)) { var aggregate = new TestEventPublishingAggregateRoot(Guid.NewGuid()); aggregate.AddEvent(@event); context.Save(aggregate); } Assert.Equal(1, events.Count); Assert.True(events.Contains(@event)); }