public void Add_EmptyName_DoesNotAdd() { var testable = new WrappedSqlDynamicParameters(); Action action = () => testable.Add(string.Empty, SqlDbType.VarChar); action.Should().Throw <ArgumentException>().WithMessage("Cannot create Dynamic parameter with empty name. (Parameter 'name')"); }
public void Add_NameWithParmameterSymbol_RemovesParmameterSymbol() { var testable = new WrappedSqlDynamicParameters(); testable.Add("@Black", SqlDbType.VarChar); testable.ParameterNames.Should().NotBeEmpty(); testable.ParameterNames.Should().HaveCount(1); testable.ParameterNames.First().Should().Be("Black"); }
public void Add_Normally_AppearsInParameterList() { var testable = new WrappedSqlDynamicParameters(); testable.Add("Black", SqlDbType.VarChar); testable.ParameterNames.Should().NotBeEmpty(); testable.ParameterNames.Should().HaveCount(1); testable.ParameterNames.First().Should().Be("Black"); }
public void Add_Existing_IsUpdated() { var cmd = new SqlCommand(); cmd.Parameters.Add("Already", SqlDbType.Int, 13); var testable = new WrappedSqlDynamicParameters(); testable.Add("Already", SqlDbType.Int, 12); testable.Add("New", SqlDbType.NVarChar, "this is new"); testable.AddParameters(cmd); // Faking Command execution testable.ParameterNames.Should().HaveCount(2, "Existing param with same name should be reused!"); testable.ParameterValues["Already"].Should().Be(12); testable.SqlDbTypes["Already"].Should().Be(SqlDbType.Int); testable.ParameterDirections["Already"].Should().Be(ParameterDirection.Input); testable.ParameterDbDataObject.Count.Should().Be(2); var internalTestable = (SqlParameter)testable.ParameterDbDataObject["Already"]; internalTestable.Value.Should().Be(12); internalTestable.DbType.Should().Be(DbType.Int32); internalTestable.Direction.Should().Be(ParameterDirection.Input); internalTestable.Size.Should().Be(13); }
public void Add_CharParameter_StoredCorrectly() { var testable = new WrappedSqlDynamicParameters(); testable.Add("State", SqlDbType.Char, "NO", ParameterDirection.Input, 2); testable.AddParameters(new SqlCommand()); // Faking Command execution testable.ParameterValues["State"].Should().Be("NO"); var internalTestable = (SqlParameter)testable.ParameterDbDataObject["State"]; internalTestable.Value.Should().Be("NO"); internalTestable.SqlDbType.Should().Be(SqlDbType.Char); internalTestable.DbType.Should().Be(DbType.AnsiStringFixedLength); internalTestable.Size.Should().Be(2); }
public void Add_VarcharParameter_StoredCorrectly() { var testable = new WrappedSqlDynamicParameters(); testable.Add("Description", SqlDbType.VarChar, "YoKaLeMeNe"); testable.AddParameters(new SqlCommand()); // Faking Command execution testable.ParameterValues["Description"].Should().Be("YoKaLeMeNe"); testable.SqlDbTypes["Description"].Should().Be(SqlDbType.VarChar); testable.ParameterDirections["Description"].Should().Be(ParameterDirection.Input); var internalTestable = (SqlParameter)testable.ParameterDbDataObject["Description"]; internalTestable.ParameterName.Should().Be("Description"); internalTestable.Value.Should().Be("YoKaLeMeNe"); internalTestable.DbType.Should().Be(DbType.AnsiString); internalTestable.SqlDbType.Should().Be(SqlDbType.VarChar); internalTestable.Direction.Should().Be(ParameterDirection.Input); internalTestable.Size.Should().Be(4000); }
public void Add_StringNullParameter_StoredCorrectly() { var testable = new WrappedSqlDynamicParameters(); testable.Add("Nullable", SqlDbType.VarChar, null); testable.AddParameters(new SqlCommand()); // Faking Command execution testable.ParameterValues["Nullable"].Should().Be(null); testable.ParameterDirections["Nullable"].Should().Be(ParameterDirection.Input); testable.SqlDbTypes["Nullable"].Should().Be(SqlDbType.VarChar); var internalTestable = (SqlParameter)testable.ParameterDbDataObject["Nullable"]; internalTestable.ParameterName.Should().Be("Nullable"); internalTestable.Value.Should().Be(DBNull.Value); internalTestable.SqlDbType.Should().Be(SqlDbType.VarChar); internalTestable.DbType.Should().Be(DbType.AnsiString); internalTestable.Direction.Should().Be(ParameterDirection.Input); internalTestable.Size.Should().Be(0); }
public void Add_BooleanParameter_StoredCorrectly() { var testable = new WrappedSqlDynamicParameters(); testable.Add("IsTrue", SqlDbType.Bit, true); testable.AddParameters(new SqlCommand()); // Faking Command execution ((bool)testable.ParameterValues["IsTrue"]).Should().BeTrue(); testable.SqlDbTypes["IsTrue"].Should().Be(SqlDbType.Bit); testable.ParameterDirections["IsTrue"].Should().Be(ParameterDirection.Input); var internalTestable = (SqlParameter)testable.ParameterDbDataObject["IsTrue"]; internalTestable.ParameterName.Should().Be("IsTrue"); ((bool)internalTestable.Value).Should().BeTrue(); internalTestable.DbType.Should().Be(DbType.Boolean); internalTestable.SqlDbType.Should().Be(SqlDbType.Bit); internalTestable.Direction.Should().Be(ParameterDirection.Input); internalTestable.Size.Should().Be(0); }
public void Add_IntParameter_StoredCorrectly() { var testable = new WrappedSqlDynamicParameters(); testable.Add("Integer", SqlDbType.Int, 777); testable.AddParameters(new SqlCommand()); // Faking Command execution testable.ParameterValues["Integer"].Should().Be(777); testable.SqlDbTypes["Integer"].Should().Be(SqlDbType.Int); testable.ParameterDirections["Integer"].Should().Be(ParameterDirection.Input); var internalTestable = (SqlParameter)testable.ParameterDbDataObject["Integer"]; internalTestable.ParameterName.Should().Be("Integer"); internalTestable.Value.Should().Be(777); internalTestable.SqlDbType.Should().Be(SqlDbType.Int); internalTestable.DbType.Should().Be(DbType.Int32); internalTestable.Direction.Should().Be(ParameterDirection.Input); internalTestable.Size.Should().Be(0); }
public void Add_NCharParameter_StoredCorrectly() { var testable = new WrappedSqlDynamicParameters(); testable.Add("Valsts", SqlDbType.NChar, "Latvijas Republika"); testable.AddParameters(new SqlCommand()); // Faking Command execution testable.ParameterValues["Valsts"].Should().Be("Latvijas Republika"); testable.SqlDbTypes["Valsts"].Should().Be(SqlDbType.NChar); testable.ParameterDirections["Valsts"].Should().Be(ParameterDirection.Input); var internalTestable = (SqlParameter)testable.ParameterDbDataObject["Valsts"]; internalTestable.ParameterName.Should().Be("Valsts"); internalTestable.Value.Should().Be("Latvijas Republika"); internalTestable.SqlDbType.Should().Be(SqlDbType.NChar); internalTestable.DbType.Should().Be(DbType.StringFixedLength); internalTestable.Direction.Should().Be(ParameterDirection.Input); internalTestable.Size.Should().Be(4000); }
public void Add_DateTimeParameter_StoredCorrectly() { var testable = new WrappedSqlDynamicParameters(); DateTime bd = DateTime.Now; testable.Add("Birthday", SqlDbType.DateTime, bd); testable.AddParameters(new SqlCommand()); // Faking Command execution ((DateTime)testable.ParameterValues["Birthday"]).Should().BeCloseTo(bd, TimeSpan.FromSeconds(2)); testable.SqlDbTypes["Birthday"].Should().Be(SqlDbType.DateTime); testable.ParameterDirections["Birthday"].Should().Be(ParameterDirection.Input); var internalTestable = (SqlParameter)testable.ParameterDbDataObject["Birthday"]; internalTestable.ParameterName.Should().Be("Birthday"); ((DateTime)internalTestable.Value).Should().BeCloseTo(bd, TimeSpan.FromSeconds(2)); internalTestable.DbType.Should().Be(DbType.DateTime); internalTestable.SqlDbType.Should().Be(SqlDbType.DateTime); internalTestable.Direction.Should().Be(ParameterDirection.Input); internalTestable.Size.Should().Be(0); }