Ejemplo n.º 1
0
        public void TestSqlStatementBuilderCreateInsertWithIdentityAsBigInt()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder();
            var tableName        = "Table";
            var fields           = Field.From("Field1", "Field2", "Field3");
            var identityField    = new DbField("Field1", false, true, false, typeof(long), null, null, null);

            // Act
            var actual = statementBuilder.CreateInsert(queryBuilder: queryBuilder,
                                                       tableName: tableName,
                                                       fields: fields,
                                                       primaryField: null,
                                                       identityField: identityField);
            var expected = $"" +
                           $"INSERT INTO [Table] " +
                           $"( [Field2], [Field3] ) " +
                           $"VALUES " +
                           $"( @Field2, @Field3 ) ; " +
                           $"SELECT CONVERT(BIGINT, SCOPE_IDENTITY()) AS [Result] ;";

            // Assert
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 2
0
        public void TestSqlStatementBuilderCreateInsertWithPrimary()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder();
            var tableName        = "Table";
            var fields           = Field.From("Field1", "Field2", "Field3");
            var primaryField     = new DbField("Field1", true, false, false, typeof(int), null, null, null);

            // Act
            var actual = statementBuilder.CreateInsert(queryBuilder: queryBuilder,
                                                       tableName: tableName,
                                                       fields: fields,
                                                       primaryField: primaryField,
                                                       identityField: null);
            var expected = $"" +
                           $"INSERT INTO [Table] " +
                           $"( [Field1], [Field2], [Field3] ) " +
                           $"VALUES " +
                           $"( @Field1, @Field2, @Field3 ) ; " +
                           $"SELECT @Field1 AS [Result] ;";

            // Assert
            Assert.AreEqual(expected, actual);
        }
        public void ThrowExceptionOnSqlDbProviderCreateInlineInsertIfTheIdentityFieldIsNotTheClassMappingIdField()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder <ThrowExceptionOnSqlDbProviderCreateInlineInsertIfTheIdentityFieldIsNotTheClassMappingIdFieldClass>();

            // Act/Assert
            statementBuilder.CreateInsert(queryBuilder);
        }
        public void ThrowExceptionIfTheIdentityFieldIsNotThePrimaryKeyField()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder <ThrowExceptionIfTheIdentityFieldIsNotThePrimaryKeyFieldClass>();

            // Act/Assert
            statementBuilder.CreateInsert(queryBuilder);
        }
Ejemplo n.º 5
0
        public void ThrowExceptionOnSqlStatementBuilderCreateInsertIfTheTableIsWhitespace()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder();
            var tableName        = " ";

            // Act
            statementBuilder.CreateInsert(queryBuilder: queryBuilder,
                                          tableName: tableName,
                                          fields: null,
                                          primaryField: null,
                                          identityField: null);
        }
Ejemplo n.º 6
0
        public void ThrowExceptionOnSqlStatementBuilderCreateInsertIfThePrimaryIsNotReallyAPrimary()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder();
            var tableName        = "Table";
            var fields           = Field.From("Field1", "Field2", "Field3");
            var primaryField     = new DbField("Field1", false, false, false, typeof(int), null, null, null);

            // Act
            statementBuilder.CreateInsert(queryBuilder: queryBuilder,
                                          tableName: tableName,
                                          fields: fields,
                                          primaryField: primaryField,
                                          identityField: null);
        }
Ejemplo n.º 7
0
        public void TestSqlDbProviderCreateInsertWithFieldMappings()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder <TestSqlDbProviderCreateInsertWithFieldMappingsClass>();

            // Act
            var actual   = statementBuilder.CreateInsert(queryBuilder);
            var expected = $"" +
                           $"INSERT INTO [TestSqlDbProviderCreateInsertWithFieldMappingsClass] " +
                           $"( [Field1], [Field2], [Field4] ) " +
                           $"VALUES " +
                           $"( @Field1, @Field2, @Field4 ) ; " +
                           $"SELECT NULL AS [Result] ;";

            // Assert
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 8
0
        public void TestSqlDbProviderCreateInsertWithClassMappingId()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder <TestWithSqlDbProviderCreateInsertClassMappingIdClass>();

            // Act
            var actual   = statementBuilder.CreateInsert(queryBuilder);
            var expected = $"" +
                           $"INSERT INTO [ClassName] " +
                           $"( [ClassNameId], [Field2], [Field3] ) " +
                           $"VALUES " +
                           $"( @ClassNameId, @Field2, @Field3 ) ; " +
                           $"SELECT @ClassNameId AS [Result] ;";

            // Assert
            Assert.AreEqual(expected, actual);
        }
        public void TestWithPrimaryKeyField()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder <TestWithPrimaryKeyFieldClass>();

            // Act
            var actual   = statementBuilder.CreateInsert(queryBuilder);
            var expected = $"" +
                           $"INSERT INTO [TestWithPrimaryKeyFieldClass] " +
                           $"( [Field1], [Field2], [Field3] ) " +
                           $"VALUES " +
                           $"( @Field1, @Field2, @Field3 ) ; " +
                           $"SELECT @Field1 AS [Result] ;";

            // Assert
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 10
0
        public void TestSqlStatementBuilderCreateInsertWithUnquotedTableSchema()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder();
            var tableName        = "dbo.Table";
            var fields           = Field.From("Field1", "Field2", "Field3");

            // Act
            var actual = statementBuilder.CreateInsert(queryBuilder: queryBuilder,
                                                       tableName: tableName,
                                                       fields: fields,
                                                       primaryField: null,
                                                       identityField: null);
            var expected = $"" +
                           $"INSERT INTO [dbo].[Table] " +
                           $"( [Field1], [Field2], [Field3] ) " +
                           $"VALUES " +
                           $"( @Field1, @Field2, @Field3 ) ; " +
                           $"SELECT NULL AS [Result] ;";

            // Assert
            Assert.AreEqual(expected, actual);
        }