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));
        }
Exemplo n.º 2
0
        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);
        }