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); }
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); }