public void TestSqlConnectionDatesMappedNullCrudAsync()
        {
            // Setup
            var entity = new DatesMapClass
            {
                SessionId                  = Guid.NewGuid(),
                ColumnDateMapped           = null,
                ColumnDateTimeMapped       = null,
                ColumnDateTime2Mapped      = null,
                ColumnSmallDateTimeMapped  = null,
                ColumnDateTimeOffsetMapped = null,
                ColumnTimeMapped           = null
            };

            using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb))
            {
                // Act Insert
                var insertResult = connection.InsertAsync(entity);
                var id           = insertResult.Result;

                // Act Query
                var queryResult = connection.QueryAsync <DatesMapClass>(e => e.SessionId == (Guid)id);
                var data        = queryResult.Result.FirstOrDefault();

                // Assert
                Assert.IsNotNull(data);
                Assert.IsNull(data.ColumnDateMapped);
                Assert.IsNull(data.ColumnDateTimeMapped);
                Assert.IsNull(data.ColumnDateTime2Mapped);
                Assert.IsNull(data.ColumnSmallDateTimeMapped);
                Assert.IsNull(data.ColumnDateTimeOffsetMapped);
                Assert.IsNull(data.ColumnTimeMapped);
            }
        }
        public void TestSqlConnectionDatesMappedCrud()
        {
            // Setup
            var dateTime  = new DateTime(1970, 1, 1, 12, 50, 30, DateTimeKind.Utc);
            var dateTime2 = dateTime.AddMilliseconds(100);
            var entity    = new DatesMapClass
            {
                SessionId                  = Guid.NewGuid(),
                ColumnDateMapped           = dateTime.Date,
                ColumnDateTimeMapped       = dateTime,
                ColumnDateTime2Mapped      = dateTime2,
                ColumnSmallDateTimeMapped  = dateTime,
                ColumnDateTimeOffsetMapped = new DateTimeOffset(dateTime.Date).ToOffset(TimeSpan.FromHours(2)),
                ColumnTimeMapped           = dateTime.TimeOfDay
            };

            using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb))
            {
                // Act Insert
                var id = connection.Insert(entity);

                // Act Query
                var data = connection.Query <DatesMapClass>(e => e.SessionId == (Guid)id).FirstOrDefault();

                // Assert
                Assert.IsNotNull(data);
                Assert.AreEqual(entity.ColumnDateMapped, data.ColumnDateMapped);
                Assert.AreEqual(entity.ColumnDateTimeMapped, data.ColumnDateTimeMapped);
                Assert.AreEqual(entity.ColumnDateTime2Mapped, data.ColumnDateTime2Mapped);
                Assert.AreEqual(dateTime.AddSeconds(30), data.ColumnSmallDateTimeMapped); // Always in a fraction of minutes, round (off/up)
                Assert.AreEqual(entity.ColumnDateTimeOffsetMapped, data.ColumnDateTimeOffsetMapped);
                Assert.AreEqual(entity.ColumnTimeMapped, data.ColumnTimeMapped);
            }
        }
        public void TestBaseRepositoryDatesMappedNullCrud()
        {
            // Setup
            var entity = new DatesMapClass
            {
                SessionId                  = Guid.NewGuid(),
                ColumnDateMapped           = null,
                ColumnDateTimeMapped       = null,
                ColumnDateTime2Mapped      = null,
                ColumnSmallDateTimeMapped  = null,
                ColumnDateTimeOffsetMapped = null,
                ColumnTimeMapped           = null
            };

            using (var repository = new DatesMapClassRepository(Database.ConnectionStringForRepoDb))
            {
                // Act Insert
                var id = repository.Insert(entity);

                // Act Query
                var data = repository.Query(e => e.SessionId == (Guid)id).FirstOrDefault();

                // Assert
                Assert.IsNotNull(data);
                Assert.IsNull(data.ColumnDateMapped);
                Assert.IsNull(data.ColumnDateTimeMapped);
                Assert.IsNull(data.ColumnDateTime2Mapped);
                Assert.IsNull(data.ColumnSmallDateTimeMapped);
                Assert.IsNull(data.ColumnDateTimeOffsetMapped);
                Assert.IsNull(data.ColumnTimeMapped);
            }
        }