Пример #1
0
        public void StructuredDynamicYielder()
        {
            var result = new StructuredDynamicYielder(new[] { new {
                                                                  A = true,
                                                                  B = (bool?)false,
                                                                  C = Col.Bit(true),
                                                                  D = (bool?)null,
                                                                  E = Col.Bit(null)
                                                              } }).First();

            Assert.AreEqual(5, result.FieldCount);
            Assert.AreEqual(typeof(bool), result.GetValue(0).GetType());
            Assert.AreEqual(true, result.GetValue(0));
            Assert.AreEqual(typeof(bool), result.GetValue(1).GetType());
            Assert.AreEqual(false, result.GetValue(1));
            Assert.AreEqual(typeof(bool), result.GetValue(2).GetType());
            Assert.AreEqual(true, result.GetValue(2));
            Assert.AreEqual(DBNull.Value, result.GetValue(3));
            Assert.AreEqual(DBNull.Value, result.GetValue(4));
        }
        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);
        }
Пример #3
0
 public void Factory()
 {
     Assert.IsInstanceOf <SqlBit>(Col.Bit(true));
 }
        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);
        }