public void WhenAnEventsAreReplayed_ThenTheNextEventVersionShouldBeInitializedProperly()
        {
            var entity = new AggregateRootFake
            {
                Id = new FakeId()
            };

            var event1 = new FakeEvent(
                Guid.NewGuid(),
                entity.Id.Value,
                entity.Id.Value,
                DateTime.UtcNow,
                1
                );

            var event2 = new FakeEvent(
                Guid.NewGuid(),
                entity.Id.Value,
                entity.Id.Value,
                DateTime.UtcNow,
                2
                );

            entity.Replay(event1);
            entity.Replay(event2);

            entity.Increment();

            entity.Changes[0].Version.Should().Be(3);
        }
Esempio n. 2
0
        public async void ShouldSaveEventsForEntity()
        {
            var db          = new Mock <IEventStore>();
            var entityStore = new EntityStore(db.Object);

            var entity = new AggregateRootFake
            {
                Id = new FakeId()
            };

            entity.Increment();
            entity.Increment();
            entity.Increment();

            await entityStore.Save <AggregateRootFake>(entity);

            db.Verify(m => m.Save(It.IsAny <FakeEvent>()), Times.Exactly(3));
        }
Esempio n. 3
0
        public async void ShouldLoadEntityAndApplyStoredEvent()
        {
            var db          = new InMemoryEventStore();
            var entityStore = new EntityStore(db);

            var entity = new AggregateRootFake
            {
                Id = new FakeId()
            };

            entity.Increment();
            entity.Increment();
            entity.Increment();

            await entityStore.Save(entity);

            var loadedEntity = await entityStore.Load <AggregateRootFake>(entity.Id);

            loadedEntity.Changes.Count.Should().Be(0);
            loadedEntity.Count.Should().Be(3);
        }
        public void WhenAnEntityIsCreated_ThenTheFirstEventVersionToAssignedShouldBeOne()
        {
            var entity = new AggregateRootFake
            {
                Id = new FakeId()
            };

            entity.Increment();

            entity.Changes.Count.Should().Be(1);

            entity.Changes[0].Version.Should().Be(1);
        }