public async Task StoredEventsAreAppliedIfThereAreMissingEvents() { // Arrange var thingyId = A <ThingyId>(); var emittedEvents = new[] { ToDomainEvent(thingyId, A <ThingyPingEvent>(), 3), ToDomainEvent(thingyId, A <ThingyPingEvent>(), 4), }; var missingEvents = new[] { ToDomainEvent(thingyId, A <ThingyPingEvent>(), 2) }; var storedEvents = Enumerable.Empty <IDomainEvent <ThingyAggregate, ThingyId> >() .Concat(missingEvents) .Concat(emittedEvents) .ToArray(); Arrange_ReadModelStore_UpdateAsync(ReadModelEnvelope <TReadModel> .With( thingyId.Value, A <TReadModel>(), 1)); _eventStoreMock.Arrange_LoadEventsAsync(storedEvents); // Act await Sut.UpdateReadStoresAsync(emittedEvents, CancellationToken.None).ConfigureAwait(false); // Assert AppliedDomainEvents.Should().HaveCount(storedEvents.Length); AppliedDomainEvents.ShouldAllBeEquivalentTo(storedEvents); }
public async Task EventsAreApplied() { // Arrange var thingyId = A <ThingyId>(); var emittedEvents = new[] { ToDomainEvent(thingyId, A <ThingyPingEvent>(), 3), }; Arrange_ReadModelStore_UpdateAsync(ReadModelEnvelope <TReadModel> .With( thingyId.Value, A <TReadModel>(), 2)); // Act await Sut.UpdateReadStoresAsync(emittedEvents, CancellationToken.None).ConfigureAwait(false); // Assert AppliedDomainEvents.Should().HaveCount(emittedEvents.Length); AppliedDomainEvents.ShouldAllBeEquivalentTo(emittedEvents); }