public void Should_Add_Parameters_To_The_DbCommand_And_To_The_Insert_Statement() { // Arrange var customer = new CustomerWithFields { FirstName = "Clark", LastName = "Kent", DateOfBirth = DateTime.Parse("06/18/1938") }; var dbCommand = TestHelpers.GetDbCommand(); // Act dbCommand = dbCommand.GenerateInsertForSQLite(customer, "[Person]"); // Visual Assertion Trace.WriteLine(dbCommand.CommandText); // Assert var parameters = dbCommand.Parameters.Cast <DbParameter>().ToList(); Assert.That(parameters.FirstOrDefault(x => x.ParameterName.Contains("@FirstName")).Value.ToString() == customer.FirstName); Assert.That(parameters.FirstOrDefault(x => x.ParameterName.Contains("@LastName")).Value.ToString() == customer.LastName); Assert.That(parameters.FirstOrDefault(x => x.ParameterName.Contains("@DateOfBirth")).Value.ToString() == customer.DateOfBirth.ToString()); Assert.That(dbCommand.CommandText.Contains("@FirstName")); Assert.That(dbCommand.CommandText.Contains("@LastName")); Assert.That(dbCommand.CommandText.Contains("@DateOfBirth")); }
public void Should_Add_The_Type_Name_When_No_Table_Name_Is_Supplied() { // Arrange var customer = new CustomerWithFields { FirstName = "Clark", LastName = "Kent", DateOfBirth = DateTime.Parse( "06/18/1938" ) }; var dbCommand = TestHelpers.GetDbCommand(); // Act dbCommand = dbCommand.GenerateInsertCommand( customer, "INSERT INTO {0} ({1}) VALUES({2});" ); // Visual Assertion Trace.WriteLine( dbCommand.CommandText ); // Assert Assert.That( dbCommand.CommandText.Contains( "CustomerWithFields" ) ); }
public void Should_Throw_An_Exception_When_Passing_A_Null_Object() { // Arrange CustomerWithFields customer = null; var dbCommand = TestHelpers.GetDbCommand(); // Act TestDelegate action = () => dbCommand.GenerateInsertCommand(customer, "INSERT INTO {0} ({1}) VALUES({2});"); // Assert var exception = Assert.Catch <ArgumentNullException>(action); Trace.WriteLine(exception.Message); Assert.That(exception.Message.Contains("Value cannot be null.\r\nParameter name: obj")); }
public void Should_Generate_An_Insert_Statement_When_Passed_An_Instance_Of_An_Class_With_Fields() { // Arrange var customer = new CustomerWithFields { FirstName = "Clark", LastName = "Kent", DateOfBirth = DateTime.Parse( "06/18/1938" ) }; var dbCommand = TestHelpers.GetDbCommand(); // Act dbCommand = dbCommand.GenerateInsertCommand( customer, "INSERT INTO {0} ({1}) VALUES({2});" ); // Visual Assertion Trace.WriteLine( dbCommand.CommandText ); // Assert Assert.NotNull( dbCommand.CommandText ); Assert.That( dbCommand.CommandText.Contains( "INSERT" ) ); }
public void Should_Use_The_Supplied_Table_Name_In_The_Insert_Statement() { // Arrange var customer = new CustomerWithFields { FirstName = "Clark", LastName = "Kent", DateOfBirth = DateTime.Parse("06/18/1938") }; var dbCommand = TestHelpers.GetDbCommand(); // Act dbCommand = dbCommand.GenerateInsertForSQLite(customer, "[Person]"); // Visual Assertion Trace.WriteLine(dbCommand.CommandText); // Assert Assert.That(dbCommand.CommandText.Contains("[Person]")); }
public void Should_Add_The_Type_Name_When_No_Table_Name_Is_Supplied() { // Arrange var customer = new CustomerWithFields { FirstName = "Clark", LastName = "Kent", DateOfBirth = DateTime.Parse("06/18/1938") }; var dbCommand = TestHelpers.GetDbCommand(); // Act dbCommand = dbCommand.GenerateInsertCommand(customer, "INSERT INTO {0} ({1}) VALUES({2});"); // Visual Assertion Trace.WriteLine(dbCommand.CommandText); // Assert Assert.That(dbCommand.CommandText.Contains("CustomerWithFields")); }
public void Can_Escape_The_Table_Name_With_Double_Quotes() { // Arrange var customer = new CustomerWithFields { FirstName = "Clark", LastName = "Kent", DateOfBirth = DateTime.Parse("06/18/1938") }; var dbCommand = TestHelpers.GetDbCommand(); // Act dbCommand = dbCommand.GenerateInsertCommand(customer, "INSERT INTO {0} ({1}) VALUES({2});", null, DbCommandExtensions.KeywordEscapeMethod.DoubleQuote); // Visual Assertion Trace.WriteLine(dbCommand.CommandText); // Assert Assert.That(dbCommand.CommandText.Contains("\"CustomerWithFields\"")); }
public void Should_Generate_An_Insert_Statement_When_Passed_An_Instance_Of_An_Class_With_Fields() { // Arrange var customer = new CustomerWithFields { FirstName = "Clark", LastName = "Kent", DateOfBirth = DateTime.Parse("06/18/1938") }; var dbCommand = TestHelpers.GetDbCommand(); // Act dbCommand = dbCommand.GenerateInsertForSQLite(customer); // Visual Assertion Trace.WriteLine(dbCommand.CommandText); // Assert Assert.NotNull(dbCommand.CommandText); Assert.That(dbCommand.CommandText.Contains("INSERT")); }
public void Can_Escape_The_Column_Names_With_Double_Quotes() { // Arrange var customer = new CustomerWithFields { FirstName = "Clark", LastName = "Kent", DateOfBirth = DateTime.Parse( "06/18/1938" ) }; var dbCommand = TestHelpers.GetDbCommand(); // Act dbCommand = dbCommand.GenerateInsertCommand( customer, "INSERT INTO {0} ({1}) VALUES({2});", null, DbCommandExtensions.KeywordEscapeMethod.DoubleQuote ); // Visual Assertion Trace.WriteLine( dbCommand.CommandText ); // Assert Assert.That( dbCommand.CommandText.Contains( "\"FirstName\"" ) ); Assert.That( dbCommand.CommandText.Contains( "\"LastName\"" ) ); Assert.That( dbCommand.CommandText.Contains( "\"DateOfBirth\"" ) ); }
public void Should_Add_Parameters_To_The_DbCommand_And_To_The_Insert_Statement() { // Arrange var customer = new CustomerWithFields { FirstName = "Clark", LastName = "Kent", DateOfBirth = DateTime.Parse( "06/18/1938" ) }; var dbCommand = TestHelpers.GetDbCommand(); // Act dbCommand = dbCommand.GenerateInsertCommand( customer, "INSERT INTO {0} ({1}) VALUES({2});", "[Person]" ); // Visual Assertion Trace.WriteLine( dbCommand.CommandText ); // Assert var parameters = dbCommand.Parameters.Cast<DbParameter>().ToList(); Assert.That( parameters.FirstOrDefault( x => x.ParameterName.Contains( "@FirstName" ) ).Value.ToString() == customer.FirstName ); Assert.That( parameters.FirstOrDefault( x => x.ParameterName.Contains( "@LastName" ) ).Value.ToString() == customer.LastName ); Assert.That( parameters.FirstOrDefault( x => x.ParameterName.Contains( "@DateOfBirth" ) ).Value.ToString() == customer.DateOfBirth.ToString() ); Assert.That( dbCommand.CommandText.Contains( "@FirstName" ) ); Assert.That( dbCommand.CommandText.Contains( "@LastName" ) ); Assert.That( dbCommand.CommandText.Contains( "@DateOfBirth" ) ); }
public void Should_Use_The_Supplied_Table_Name_In_The_Insert_Statement() { // Arrange var customer = new CustomerWithFields { FirstName = "Clark", LastName = "Kent", DateOfBirth = DateTime.Parse( "06/18/1938" ) }; var dbCommand = TestHelpers.GetDbCommand(); // Act dbCommand = dbCommand.GenerateInsertForSQLite( customer, "[Person]" ); // Visual Assertion Trace.WriteLine( dbCommand.CommandText ); // Assert Assert.That( dbCommand.CommandText.Contains( "[Person]" ) ); }