public async Task ProjectEventsAsync_FindTargetOnFollowingEvent() { sut = Substitute.ForPartsOf <TestEntityEventToPocoProjector>(); sut.WhenForAnyArgs(x => x.Apply(null, Guid.Empty, null)) .Do(ci => { sut.Target.Should().NotBeNull(); sut.Target.Should().Be(sut.LastFoundTarget); sut.Target.Should().Be(ci.ArgAt <TestReadModel>(2)); }); eventMessages.Select((x, i) => (x, i)).ForEach(p => p.Item1.SetMetadata(BasicEventMetadataNames.StreamSequenceNumber, (p.Item2 + 2).ToString())); //renumber await sut.ProjectEventsAsync(aggregateId, eventMessages); sut.LastFoundTarget.Should().NotBeNull(); sut.LastCreatedTarget.Should().BeNull(); }
public async Task ProjectEventsAsync_CreatesTargetOnFirstEvent() { eventMessages.ForEach(p => p.SetMetadata(BasicEventMetadataNames.AggregateVersion, null)); sut = Substitute.ForPartsOf <TestEntityEventToPocoProjector>(); sut.WhenForAnyArgs(x => x.Apply(null, Guid.Empty, null)) .Do(ci => { sut.Target.Should().NotBeNull(); sut.Target.Should().Be(sut.LastCreatedTarget); sut.Target.Should().Be(ci.ArgAt <TestReadModel>(2)); }); await sut.ProjectEventsAsync(aggregateId, eventMessages); sut.LastCreatedTarget.Should().NotBeNull(); sut.LastFoundTarget.Should().BeNull(); }
public async Task ProjectEventsAsync_CreatesTargetOnAggregateVersion1() { foreach (var message in eventMessages) { message.SetMetadata(BasicEventMetadataNames.StreamSequenceNumber, null); message.SetMetadata(BasicEventMetadataNames.AggregateVersion, 1.ToString()); } sut = Substitute.ForPartsOf <TestEntityEventToPocoProjector>(); sut.WhenForAnyArgs(x => x.Apply(null, Guid.Empty, null)) .Do(ci => { sut.Target.Should().NotBeNull(); sut.Target.Should().Be(sut.LastCreatedTarget); sut.Target.Should().Be(ci.ArgAt <TestReadModel>(2)); }); await sut.ProjectEventsAsync(aggregateId, eventMessages); sut.LastCreatedTarget.Should().NotBeNull(); sut.LastFoundTarget.Should().BeNull(); }