public void GivenUnorderedEventsThenAnAggregateEventSequenceUnorderedExceptionIsThrown() { var aggregate = new SerializableEventCentricAggregateRoot(); var context = new SerializableMessage(); IEnumerable <DomainEvent> events = aggregate.ApplyChanges(context, times: 3); AggregateEventSequenceUnorderedException exception = Assert.Throws <AggregateEventSequenceUnorderedException>( () => aggregate.LoadFromHistory(events.OrderByDescending(@event => @event.Aggregate.Version))); Assert.True(exception.Aggregate.IsMatch(aggregate)); }
public void GivenAnInstanceThenAllPropertiesAreSerialized() { var aggregate = new SerializableEventCentricAggregateRoot(); var context = new SerializableMessage(); IEnumerable <DomainEvent> events = aggregate.ApplyChanges(context, times: 3); AggregateEventSequenceUnorderedException original = Assert.Throws <AggregateEventSequenceUnorderedException>( () => aggregate.LoadFromHistory(events.OrderByDescending(@event => @event.Aggregate.Version))); AggregateEventSequenceUnorderedException deserialized = original.Clone(); Assert.NotSame(original, deserialized); Assert.Equal(original.Aggregate, deserialized.Aggregate); Assert.Equal(original.Events, deserialized.Events); }