public async Task TestAddEvent() { // Arrange var eventStore = new EventStore.EventStore(_context, _provider, _provider.GetService <IEventDataFactory <EventData, Guid, Guid> >()); var aggregateId = Guid.NewGuid(); const int version = 0; const int secondVersion = 1; const int expectedVersion = 2; var expectedEventId = Guid.NewGuid(); var secondExpectedEventId = Guid.NewGuid(); const string updatedValue = "test"; var creationEvent = new TestCreatedEvent(expectedEventId, aggregateId, version); var updatedEvent = new UpdatedTestEvent(secondExpectedEventId, aggregateId, secondVersion, updatedValue); // Act await eventStore.AddEventAsync(creationEvent); await eventStore.AddEventAsync(updatedEvent); var aggregate = await eventStore.GetAggregateAsync <TestAggregate>(aggregateId); // Assert Assert.NotNull(eventStore); Assert.NotNull(aggregate); Assert.IsType <TestAggregate>(aggregate); Assert.Equal(updatedValue, aggregate.TestProperty); Assert.Equal(expectedVersion, aggregate.Version); }
public async Task TestGetVersion() { // Arrange var eventStore = new EventStore.EventStore(_context, _provider, _provider.GetService <IEventDataFactory <EventData, Guid, Guid> >()); var aggregateId = Guid.NewGuid(); const int version = 0; const int secondVersion = 1; const int expectedVersion = 2; var expectedEventId = Guid.NewGuid(); var secondExpectedEventId = Guid.NewGuid(); const string updatedValue = "test"; var creationEvent = new TestCreatedEvent(expectedEventId, aggregateId, version); var updatedEvent = new UpdatedTestEvent(secondExpectedEventId, aggregateId, secondVersion, updatedValue); // Act await eventStore.AddEventAsync(creationEvent); await eventStore.AddEventAsync(updatedEvent); int resultingVersion = await eventStore.GetAggregateVersionAsync(aggregateId); // Assert Assert.Equal(expectedVersion, resultingVersion); }
public void Apply(UpdatedTestEvent @event) { TestProperty = @event.UpdatedValue; }