public async Task ProjectEventsAsync_CallsApplyProjections() { sut = new TestEntityEventProjector(); await sut.ProjectEventsAsync(aggregateId, eventMessages); Assert.True(sut.AppliedEvents.SequenceEqual(new List <IEventMessage <DomainAggregateEvent> >() { eventMessages[0], eventMessages[1] })); }
public async Task ProjectEventsAsync_WithSubProjector() { sut = new TestEntityEventProjector(); var subProjector = Substitute.ForPartsOf <TestSubProjector>(new object[] { sut.AppliedEvents }); sut.AddSubProjector(subProjector); await sut.ProjectEventsAsync(aggregateId, eventMessages); sut.AppliedEvents.Should().BeEquivalentTo(new List <IEventMessage <DomainAggregateEvent> >() { eventMessages[0], eventMessages[1], eventMessages[2] }); subProjector.Received(1).Apply((IEventMessage <TestEvent3>)eventMessages[2], aggregateId); }