public async Task GivenNullDomainEventsThenAnExceptionIsThrownAsync()
        {
            var reconciler = new TestableDefaultAggregateFactory();

            _ = await Assert.ThrowsAsync <DomainEventsMissingException>(
                () => reconciler.CreateAsync(default(IEnumerable <DomainEvent>) !));
        }
        public async Task GivenEventsThenAnAggregateHydratedWithThoseEventsIsReturnedAsync()
        {
            var expected = new SerializableEventCentricAggregateRoot();
            var context  = new SerializableMessage();

            expected.Set(new SetRequest(context, Guid.NewGuid()));
            expected.Set(new SetRequest(context, Guid.NewGuid()));

            IEnumerable <DomainEvent> events = expected.GetUncommittedChanges();

            expected.MarkChangesAsCommitted();

            var reconciler = new TestableDefaultAggregateFactory();
            EventCentricAggregateRoot actual = await reconciler.CreateAsync(events);

            Assert.NotSame(expected, actual);
            Assert.Equal(expected, actual);
        }