private static DomainEvent[] CreateEvents()
        {
            var aggregate   = new SerializableAggregateRoot();
            var context     = new SerializableMessage();
            var firstEvent  = new SerializableDomainEvent <SerializableAggregateRoot>(context, aggregate);
            var secondEvent = new SerializableDomainEvent <SerializableAggregateRoot>(context, aggregate);

            return(new[] { firstEvent, secondEvent });
        }
        public void GiveEventsFromTwoAggregatesThenAnArgumentExceptionIsThrown()
        {
            var firstAggregate  = new SerializableAggregateRoot();
            var secondAggregate = new SerializableAggregateRoot();
            var context         = new SerializableMessage();
            var firstEvent      = new SerializableDomainEvent <SerializableAggregateRoot>(context, firstAggregate);
            var secondEvent     = new SerializableDomainEvent <SerializableAggregateRoot>(context, secondAggregate);

            _ = Assert.Throws <ArgumentException>(() => new AtomicUnit(new[] { firstEvent, secondEvent }));
        }
        public void GiveEventsFromASingleAggregateVersionButTwoDifferentContextsThenAnArgumentExceptionIsThrown()
        {
            var aggregate     = new SerializableAggregateRoot();
            var firstContext  = new SerializableMessage();
            var secondContext = new SerializableMessage();
            var firstEvent    = new SerializableDomainEvent <SerializableAggregateRoot>(firstContext, aggregate);
            var secondEvent   = new SerializableDomainEvent <SerializableAggregateRoot>(secondContext, aggregate);

            _ = Assert.Throws <ArgumentException>(() => new AtomicUnit(new[] { firstEvent, secondEvent }));
        }
        public void GiveEventsFromTwoDifferentVersionsOfTheSameAggregateThenAnArgumentExceptionIsThrown()
        {
            var aggregate  = new SerializableEventCentricAggregateRoot();
            var context    = new SerializableMessage();
            var firstEvent = new SerializableDomainEvent <SerializableEventCentricAggregateRoot>(context, aggregate);

            aggregate.MarkChangesAsCommitted();
            aggregate.Set(new SetRequest(context, Guid.NewGuid()));

            var secondEvent = new SerializableDomainEvent <SerializableEventCentricAggregateRoot>(context, aggregate);

            _ = Assert.Throws <ArgumentException>(() => new AtomicUnit(new[] { firstEvent, secondEvent }));
        }
        public void GiveEventsFromASingleAggregateVersionThenAnInstanceIsCreated()
        {
            const int ExpectedCount = 2;

            var aggregate = new SerializableAggregateRoot();
            var context   = new SerializableMessage();
            var first     = new SerializableDomainEvent <SerializableAggregateRoot>(context, aggregate);
            var second    = new SerializableDomainEvent <SerializableAggregateRoot>(context, aggregate);

            var unit = new AtomicUnit(new[] { first, second });

            Assert.Equal(ExpectedCount, unit.Events.Count());
            Assert.Contains(first, unit.Events);
            Assert.Contains(second, unit.Events);
        }
Example #6
0
        public void GivenAnInstanceThenAllPropertiesAreSerialized()
        {
            var aggregate       = new SerializableAggregateRoot();
            var expectedContext = new SerializableMessage();
            var original        = new SerializableDomainEvent <SerializableAggregateRoot>(expectedContext, aggregate);
            SerializableDomainEvent <SerializableAggregateRoot> deserialized = original.Clone();

            Assert.Equal(original, deserialized);
            Assert.NotSame(original, deserialized);

            Assert.Equal(original.Aggregate, deserialized.Aggregate);
            Assert.Equal(original.CausationId, deserialized.CausationId);
            Assert.Equal(original.CorrelationId, deserialized.CorrelationId);
            Assert.Equal(original.Id, deserialized.Id);
            Assert.Equal(original.TimeStamp, deserialized.TimeStamp);
            Assert.Equal(original.GetHashCode(), deserialized.GetHashCode());
        }