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); }
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()); }