public async Task NothingWrittenWithoutStoredEvents()
        {
            var domainObject = new DefaultDomainObject();
            var store        = new Mock <IEventStore>(MockBehavior.Strict);
            var result       = await domainObject.WriteRecordedEvents(store.Object);

            Assert.False(result.IsError, "result.IsError");
        }
        public async Task QueueClearedAfterWrite()
        {
            var domainObject = new DefaultDomainObject();

            domainObject.AddEvent(new EnvironmentCreated(new EnvironmentIdentifier("Foo", "Bar")));

            var store = new Mock <IEventStore>(MockBehavior.Strict);

            store.Setup(s => s.WriteEvents(It.IsAny <IList <DomainEvent> >()))
            .ReturnsAsync(42);

            await domainObject.WriteRecordedEvents(store.Object);

            Assert.Empty(domainObject.GetCapturedDomainEvents());
        }
        public async Task IncrementVersionAfterWrite()
        {
            var domainObject = new DefaultDomainObject();

            domainObject.AddEvent(new EnvironmentCreated(new EnvironmentIdentifier("Foo", "Bar")));

            var store = new Mock <IEventStore>(MockBehavior.Strict);

            store.Setup(s => s.WriteEvents(It.IsAny <IList <DomainEvent> >()))
            .ReturnsAsync(42);

            await domainObject.WriteRecordedEvents(store.Object);

            Assert.Equal(42, domainObject.CurrentVersion);
            Assert.Equal(42, domainObject.MetaVersion);
        }