Пример #1
0
        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" ) );
        }
Пример #3
0
        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" ) );
        }
Пример #5
0
        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]"));
        }
Пример #6
0
        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"));
        }
Пример #7
0
        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\""));
        }
Пример #8
0
        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]" ) );
        }