public void SqlServerEventStore_Save_And_Find_Should_Retrieve_EnumEvent_Without_Throwing_When_NullableConfirm_Is_Not_Null()
        {
            var enumEvent = new EnumEvent(EnumEvent.TestEnum.Yes, nullableConfirm: EnumEvent.TestEnum.No);

            var eventId = enumEvent.Id;

            var eventStore = new SqlServerEventStore(Config.ConnectionString, this.EventDispatcher);

            eventStore.Save(enumEvent);

            System.Threading.Thread.Sleep(1000);

            var events = eventStore.Find <EnumEvent>(e => e.Id == eventId).ToArray();

            Assert.NotNull(events);
            Assert.Single(events);

            var @event = events[0];

            Assert.Equal(enumEvent.Id, @event.Id);
            Assert.Equal(enumEvent.TimelineId, @event.TimelineId);
            Assert.Equal(enumEvent.TimeStamp.ToLongDateString(), @event.TimeStamp.ToLongDateString());
            Assert.Equal(enumEvent.RequiredConfirm, @event.RequiredConfirm);
            Assert.Equal(enumEvent.NullableConfirm, @event.NullableConfirm);
            Assert.NotNull(@event.NullableConfirm);
        }
        public void SqlServerEventStore_Find_PlainEvent_Should_Work()
        {
            var eventStore = new SqlServerEventStore(this.Settings, this.EventDispatcher);

            var events = eventStore.Find <PlainEvent>(e => e.MyAggId != Guid.Empty).ToArray();

            Assert.NotNull(events);
            Assert.NotEmpty(events);
        }
        public void SqlServerEventStore_Find_ComplexEvent_Should_Work()
        {
            var eventStore = new SqlServerEventStore(this.Settings, this.EventDispatcher);

            var events = eventStore.Find <ComplexEvent>(e => e.N > 0).ToArray();

            Assert.NotNull(events);
            Assert.NotEmpty(events);
        }
        public void SqlServerEventStore_Find_NotMappedEvent_Should_Return_Empty_Collection_If_Table_Does_Not_Exist()
        {
            var eventStore = new SqlServerEventStore(this.Settings, this.EventDispatcher);

            var events = eventStore.Find <NotMappedEvent>(p => p.Id == Guid.Empty);

            Assert.NotNull(events);
            Assert.Empty(events);
        }
        public void SqlServerEventStore_Find_PlainEvent_Should_Retrieve_Previously_Saved_Event()
        {
            var myAggId = Guid.NewGuid();

            var plainEvent = new PlainEvent(myAggId, null);

            var eventStore = new SqlServerEventStore(this.Settings, this.EventDispatcher);

            eventStore.Save(plainEvent);

            var events = eventStore.Find <PlainEvent>(e => e.MyAggId == myAggId).ToArray();

            Assert.NotNull(events);
            Assert.Single(events);

            var @event = events[0];

            Assert.Equal(myAggId, @event.MyAggId);
            Assert.Equal(plainEvent.Id, @event.Id);
            Assert.Equal(plainEvent.TimeStamp.ToLongDateString(), @event.TimeStamp.ToLongDateString());
            Assert.Null(@event.TimelineId);
        }