public async Task ProjectEventsAsync_CallsInheritedOnlyOnce() { sut = new TestEntityEventProjector2WithInherited(); await sut.ProjectEventsAsync(aggregateId, eventMessages); sut.AppliedEvents.Should().BeEquivalentTo( new[] { eventMessages[0], eventMessages[1] }, options => options.WithStrictOrdering()); }
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[] { eventMessages[0], eventMessages[1], eventMessages[2] }, options => options.WithStrictOrdering()); subProjector.Received(1).Apply((IEventMessage <TestEvent3>)eventMessages[2], aggregateId); }