Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }