public void CanCreateFromEvents() { // arrange var factory = AggregateFactory.For <Counter>(); var aggregateId = "some id"; var events = new IAggregateEvent[] { new AggregateEvent <CounterIncremented>( aggregateId, 1, DateTime.UtcNow, new CounterIncremented { Increment = 1 }), new AggregateEvent <CounterMultiplied>( aggregateId, 2, DateTime.UtcNow, new CounterMultiplied { Factor = 2 }), new AggregateEvent <CounterIncremented>( aggregateId, 3, DateTime.UtcNow, new CounterIncremented { Increment = 5 }), }; // act var aggregate = factory.CreateFromEvents(aggregateId, events); // assert Assert.NotNull(aggregate); Assert.AreEqual(aggregateId, aggregate.Id); Assert.AreEqual(events.Last().SequenceId, aggregate.OriginalVersion); Assert.AreEqual(0, aggregate.Changes.Count()); Assert.NotNull(aggregate.State); // no changes, so state version is the same Assert.AreEqual(events.Last().SequenceId, aggregate.State.Version); }
public void CanCreateFromEvents() { // arrange var factory = AggregateFactory.For<Counter>(); var aggregateId = "some id"; var events = new IAggregateEvent[] { new AggregateEvent<CounterIncremented>( aggregateId, 1, DateTime.UtcNow, new CounterIncremented { Increment = 1 }), new AggregateEvent<CounterMultiplied>( aggregateId, 2, DateTime.UtcNow, new CounterMultiplied{ Factor = 2}), new AggregateEvent<CounterIncremented>( aggregateId, 3, DateTime.UtcNow, new CounterIncremented { Increment = 5 }), }; // act var aggregate = factory.CreateFromEvents(aggregateId, events); // assert Assert.NotNull(aggregate); Assert.AreEqual(aggregateId, aggregate.Id); Assert.AreEqual(events.Last().SequenceId, aggregate.OriginalVersion); Assert.AreEqual(0, aggregate.Changes.Count()); Assert.NotNull(aggregate.State); // no changes, so state version is the same Assert.AreEqual(events.Last().SequenceId, aggregate.State.Version); }