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); }
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)); }
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); }