Exemple #1
0
        public void RawListOfUnspecifiedExplicitTypes()
        {
            var values  = new[] { Col.Decimal(5.27m) };
            var yielder = new StructuredDynamicYielder(values);

            Assert.Throws <TypePropertiesMustBeSetExplicitlyException>(() => yielder.ToList());
        }
Exemple #2
0
        public void RawListOfDifferentExplicitTypes()
        {
            var values  = new object[] { Col.Decimal(5.27m, 5, 2), Col.SmallMoney(5.27m) };
            var yielder = new StructuredDynamicYielder(values);

            Assert.Throws <StructuredTypeMismatchException>(() => yielder.ToList());
        }
Exemple #3
0
        public void RawListOfExplicitTypes()
        {
            var values  = new[] { Col.Decimal(5.27m, 5, 2), Col.Decimal(null) };
            var yielder = new StructuredDynamicYielder(values);

            int counter = 0;

            foreach (var value in yielder)
            {
                counter++;

                if (counter == 1)
                {
                    Assert.AreEqual(SqlDbType.Decimal, value.GetSqlMetaData(0).SqlDbType);
                    Assert.AreEqual(5, value.GetSqlMetaData(0).Precision);
                    Assert.AreEqual(2, value.GetSqlMetaData(0).Scale);
                    Assert.AreEqual(typeof(decimal), value.GetValue(0).GetType());
                    Assert.AreEqual(5.27m, value.GetValue(0));
                }
                else
                {
                    Assert.AreEqual(SqlDbType.Decimal, value.GetSqlMetaData(0).SqlDbType);
                    Assert.AreEqual(5, value.GetSqlMetaData(0).Precision);
                    Assert.AreEqual(2, value.GetSqlMetaData(0).Scale);
                    Assert.AreEqual(DBNull.Value, value.GetValue(0));
                }
            }

            Assert.AreEqual(2, counter);
        }
Exemple #4
0
        public void RawListOfDifferingSpecification()
        {
            // While this is bad pracice, the first definition will win
            var values  = new[] { Col.Decimal(5.27m, 5, 2), Col.Decimal(5.27m, 6, 1) };
            var yielder = new StructuredDynamicYielder(values);

            Assert.DoesNotThrow(() => yielder.ToList());
        }
Exemple #5
0
        public void StructuredDynamicYielder()
        {
            var result = new StructuredDynamicYielder(new[] { new {
                                                                  A = Col.Decimal(5.27m, 10, 5),
                                                                  B = Col.Decimal(null, 10, 5)
                                                              } }).First();

            Assert.AreEqual(2, result.FieldCount);
            Assert.AreEqual(typeof(decimal), result.GetValue(0).GetType());
            Assert.AreEqual(5.27m, result.GetValue(0));
            Assert.AreEqual(DBNull.Value, result.GetValue(1));
        }
Exemple #6
0
        public void ParameterValue()
        {
            var param = Col.Decimal(5.25m);

            decimal?x;

            Assert.Throws <CannotAccessParameterValueBeforeExecutingQuery>(() => x = param.Value);

            DB.Execute("SELECT @A", new { A = param });

            Assert.AreEqual(5.25m, param.Value);
        }
Exemple #7
0
        public void Structured()
        {
            var rows = DB.GetRows("SELECT * FROM @Input", new {
                Input = Col.Structured("ListOfDecimals", new[] {
                    new { A = Col.Decimal(5.27m, 10, 5) },
                    new { A = Col.Decimal(null, 10, 5) }
                })
            });

            Assert.AreEqual(2, rows.Count);
            Assert.AreEqual(typeof(decimal), rows[0].A.GetType());
            Assert.AreEqual(5.27m, rows[0].A);
            Assert.AreEqual(null, rows[1].A);
        }
        public void MixedTypes()
        {
            var cmd = new SqlCommand();

            db.AddParametersToCommand(cmd.Parameters, new {
                A = true,
                B = Col.Bit(false),
                C = new SqlSmallInt(null, ParameterDirection.Input),
                D = new SqlInt(5, ParameterDirection.Input),
                E = Col.VarChar("Test", 10),
                F = (bool?)null,
                G = 5L,
                H = (int?)null,
                I = (short)2,
                J = Col.Decimal(5.27m, 6, 2),
                K = (Guid?)null
            });

            Assert.AreEqual(11, cmd.Parameters.Count);
        }
Exemple #9
0
 public void Factory()
 {
     Assert.IsInstanceOf <SqlDecimal>(Col.Decimal(5.27m, 10, 5));
     Assert.IsInstanceOf <SqlDecimal>(Col.Decimal(5.27m));
 }
        public void SqlTypes()
        {
            var cmd = new SqlCommand();

            db.AddParametersToCommand(cmd.Parameters, new {
                A = Col.Int(25),
                B = Col.Bit(true),
                C = Col.Bit(null),
                D = Col.Decimal(5.27m),
                E = Col.Decimal(5.27m, 6, 4),
                F = Col.NVarChar("Hello"),
                G = Col.NVarChar("Hello", 128),
                H = Col.NVarChar(null, 128)
            });

            Assert.AreEqual(8, cmd.Parameters.Count);

            Assert.AreEqual(SqlDbType.Int, cmd.Parameters[0].SqlDbType);
            Assert.AreEqual(typeof(int), cmd.Parameters[0].Value.GetType());
            Assert.AreEqual("@A", cmd.Parameters[0].ParameterName);
            Assert.AreEqual(25, cmd.Parameters[0].Value);

            Assert.AreEqual(SqlDbType.Bit, cmd.Parameters[1].SqlDbType);
            Assert.AreEqual(typeof(bool), cmd.Parameters[1].Value.GetType());
            Assert.AreEqual("@B", cmd.Parameters[1].ParameterName);
            Assert.AreEqual(true, cmd.Parameters[1].Value);

            Assert.AreEqual(SqlDbType.Bit, cmd.Parameters[2].SqlDbType);
            Assert.AreEqual("@C", cmd.Parameters[2].ParameterName);
            Assert.AreEqual(DBNull.Value, cmd.Parameters[2].Value);

            Assert.AreEqual(SqlDbType.Decimal, cmd.Parameters[3].SqlDbType);
            Assert.AreEqual(typeof(decimal), cmd.Parameters[3].Value.GetType());
            Assert.AreEqual("@D", cmd.Parameters[3].ParameterName);
            Assert.AreEqual(5.27m, cmd.Parameters[3].Value);
            Assert.AreEqual(3, cmd.Parameters[3].Precision);
            Assert.AreEqual(2, cmd.Parameters[3].Scale);

            Assert.AreEqual(SqlDbType.Decimal, cmd.Parameters[4].SqlDbType);
            Assert.AreEqual(typeof(decimal), cmd.Parameters[4].Value.GetType());
            Assert.AreEqual("@E", cmd.Parameters[4].ParameterName);
            Assert.AreEqual(5.27m, cmd.Parameters[4].Value);
            Assert.AreEqual(6, cmd.Parameters[4].Precision);
            Assert.AreEqual(4, cmd.Parameters[4].Scale);

            Assert.AreEqual(SqlDbType.NVarChar, cmd.Parameters[5].SqlDbType);
            Assert.AreEqual(typeof(string), cmd.Parameters[5].Value.GetType());
            Assert.AreEqual("@F", cmd.Parameters[5].ParameterName);
            Assert.AreEqual("Hello", cmd.Parameters[5].Value);
            Assert.AreEqual(64, cmd.Parameters[5].Size);

            Assert.AreEqual(SqlDbType.NVarChar, cmd.Parameters[6].SqlDbType);
            Assert.AreEqual(typeof(string), cmd.Parameters[6].Value.GetType());
            Assert.AreEqual("@G", cmd.Parameters[6].ParameterName);
            Assert.AreEqual("Hello", cmd.Parameters[6].Value);
            Assert.AreEqual(128, cmd.Parameters[6].Size);

            Assert.AreEqual(SqlDbType.NVarChar, cmd.Parameters[7].SqlDbType);
            Assert.AreEqual("@H", cmd.Parameters[7].ParameterName);
            Assert.AreEqual(DBNull.Value, cmd.Parameters[7].Value);
            Assert.AreEqual(128, cmd.Parameters[7].Size);
        }