Exemple #1
0
 public void Should_convert_between_different_numeric_types()
 {
     DbFieldConversionUtils.Convert <Int32>(3.14).Should().Be.EqualTo(3);
     DbFieldConversionUtils.Convert <Int32>(3.55).Should().Be.EqualTo(4);
     DbFieldConversionUtils.Convert <Int32>((UInt16)5).Should().Be.EqualTo(5);
     DbFieldConversionUtils.Convert <Double>(5).Should().Be.EqualTo(5);
 }
Exemple #2
0
 public void Should_convert_nullable_int_values_from_db()
 {
     DbFieldConversionUtils.Convert <int?>(123).Should().Be.EqualTo(123);
     DbFieldConversionUtils.Convert <int?>(0).Should().Be.EqualTo(0);
     DbFieldConversionUtils.Convert <int?>(DBNull.Value).Should().Not.Have.Value();
     DbFieldConversionUtils.Convert <int?>(null).Should().Not.Have.Value();
 }
Exemple #3
0
 public void Should_convert_string_values_from_db()
 {
     DbFieldConversionUtils.Convert <string>("string").Should().Be.EqualTo("string");
     DbFieldConversionUtils.Convert <string>(DBNull.Value).Should().Be.Null();
     DbFieldConversionUtils.Convert <string>(null).Should().Be.Null();
     DbFieldConversionUtils.Convert <string>("").Should().Be.EqualTo("");
     DbFieldConversionUtils.Convert <string>("  ").Should().Be.EqualTo("  ");
 }
Exemple #4
0
        public void Should_convert_nullable_guid_values_from_db()
        {
            var guid = new Guid("b8903b30-0862-4440-8058-ac721b1a2eda");

            DbFieldConversionUtils.Convert <Guid?>(guid).Should().Be.EqualTo(guid);
            DbFieldConversionUtils.Convert <Guid?>(Guid.Empty).Should().Be.EqualTo(Guid.Empty);
            DbFieldConversionUtils.Convert <Guid?>(DBNull.Value).Should().Not.Have.Value();
            DbFieldConversionUtils.Convert <Guid?>(null).Should().Not.Have.Value();
        }
Exemple #5
0
 public virtual T Scalar <T>(string sql, object parameters = null, int?timeout = null)
 {
     using (var cmd = CreateCommand(timeout))
     {
         cmd.DbCommand.CommandText = sql;
         AddParameters(cmd.DbCommand, ToDictionary(parameters));
         object res = cmd.DbCommand.ExecuteScalar();
         return(DbFieldConversionUtils.Convert <T>(res));
     }
 }
Exemple #6
0
        public void Should_convert_char()
        {
            DbFieldConversionUtils.Convert <char>(DBNull.Value).Should().Be.EqualTo('\0');
            DbFieldConversionUtils.Convert <char>(null).Should().Be.EqualTo('\0');
            DbFieldConversionUtils.Convert <char>('A').Should().Be.EqualTo('A');
            DbFieldConversionUtils.Convert <char>("A").Should().Be.EqualTo('A');
            DbFieldConversionUtils.Convert <char>(0).Should().Be.EqualTo('\0');
            Executing.This(() => DbFieldConversionUtils.Convert <char>("AA")).Should().Throw <FormatException>()
            .And.Exception.Message.Should().Contain("String must be exactly one character long.");
            Executing.This(() => DbFieldConversionUtils.Convert <char>("")).Should().Throw <FormatException>()
            .And.Exception.Message.Should().Contain("String must be exactly one character long.");

            DbFieldConversionUtils.Convert <char?>(DBNull.Value).Should().Not.Have.Value();
            DbFieldConversionUtils.Convert <char?>(null).Should().Not.Have.Value();
            DbFieldConversionUtils.Convert <char?>("A").Should().Be.EqualTo('A');
        }
Exemple #7
0
 public static T Get <T>(this IDataRecord record, string name)
 {
     return(DbFieldConversionUtils.Convert <T>(record[name]));
 }
Exemple #8
0
 public static T Require <T>(this IDataRecord record, string name)
 {
     return(DbFieldConversionUtils.Convert <T>(record[name], () => { throw new NoNullAllowedException(string.Concat("Unexpected NULL value for field ", name)); }));
 }