Exemplo n.º 1
0
        public void TestSqlStatementBuilderCreateInsertAllWithPrimary()
        {
            // Setup
            var statementBuilder = new SqlServerStatementBuilder();
            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.CreateInsertAll(queryBuilder: queryBuilder,
                                                          tableName: tableName,
                                                          fields: fields,
                                                          batchSize: 1,
                                                          primaryField: primaryField,
                                                          identityField: null);
            var expected = $"" +
                           $"INSERT INTO [Table] " +
                           $"( [Field1], [Field2], [Field3] ) " +
                           $"VALUES " +
                           $"( @Field1, @Field2, @Field3 ) ;";

            // Assert
            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 2
0
        public void TestSqlStatementBuilderCreateInsertAllWithIdentityAsBigInt()
        {
            // Setup
            var statementBuilder = new SqlServerStatementBuilder();
            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.CreateInsertAll(queryBuilder: queryBuilder,
                                                          tableName: tableName,
                                                          fields: fields,
                                                          batchSize: 1,
                                                          primaryField: null,
                                                          identityField: identityField);
            var expected = $"" +
                           $"INSERT INTO [Table] " +
                           $"( [Field2], [Field3] ) " +
                           $"VALUES " +
                           $"( @Field2, @Field3 ) ; " +
                           $"SET @Field1 = CONVERT(BIGINT, SCOPE_IDENTITY()) ;";

            // Assert
            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 3
0
        public void ThrowExceptionOnSqlStatementBuilderCreateInsertAllIfTheTableIsWhitespace()
        {
            // Setup
            var statementBuilder = new SqlServerStatementBuilder();
            var queryBuilder     = new QueryBuilder();
            var tableName        = " ";

            // Act
            statementBuilder.CreateInsertAll(queryBuilder: queryBuilder,
                                             tableName: tableName,
                                             fields: null,
                                             batchSize: 1,
                                             primaryField: null,
                                             identityField: null);
        }
Exemplo n.º 4
0
        public void ThrowExceptionOnSqlStatementBuilderCreateInsertAllIfThePrimaryIsNotReallyAPrimary()
        {
            // Setup
            var statementBuilder = new SqlServerStatementBuilder();
            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.CreateInsertAll(queryBuilder: queryBuilder,
                                             tableName: tableName,
                                             fields: fields,
                                             batchSize: 1,
                                             primaryField: primaryField,
                                             identityField: null);
        }
Exemplo n.º 5
0
        public void ThrowExceptionOnSqlStatementBuilderCreateInsertAllIfTheNonIdentityPrimaryIsNotCovered()
        {
            // Setup
            var statementBuilder = new SqlServerStatementBuilder();
            var queryBuilder     = new QueryBuilder();
            var tableName        = "Table";
            var fields           = Field.From(new[] { "Field1", "Field2", "Field3" }, Helper.DbSetting);
            var primaryField     = new DbField("Id", true, false, false, typeof(int), null, null, null, null, Helper.DbSetting);

            // Act
            statementBuilder.CreateInsertAll(queryBuilder: queryBuilder,
                                             tableName: tableName,
                                             fields: fields,
                                             batchSize: 1,
                                             primaryField: primaryField,
                                             identityField: null);
        }
Exemplo n.º 6
0
        public void ThrowExceptionOnSqlStatementBuilderCreateInsertAllIfTheIdentityIsNotReallyAnIdentity()
        {
            // Setup
            var statementBuilder = new SqlServerStatementBuilder();
            var queryBuilder     = new QueryBuilder();
            var tableName        = "Table";
            var fields           = Field.From(new[] { "Field1", "Field2", "Field3" }, Helper.DbSetting);
            var qualifiers       = Field.From("Field1", Helper.DbSetting);
            var identifyField    = new DbField("Field2", false, false, false, typeof(int), null, null, null, null, Helper.DbSetting);

            // Act
            statementBuilder.CreateInsertAll(queryBuilder: queryBuilder,
                                             tableName: tableName,
                                             fields: fields,
                                             batchSize: 1,
                                             primaryField: null,
                                             identityField: identifyField);
        }
Exemplo n.º 7
0
        public void TestSqlStatementBuilderCreateInsertAllWithUnquotedTableSchema()
        {
            // Setup
            var statementBuilder = new SqlServerStatementBuilder();
            var queryBuilder     = new QueryBuilder();
            var tableName        = "dbo.Table";
            var fields           = Field.From("Field1", "Field2", "Field3");

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

            // Assert
            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 8
0
        public void TestSqlStatementBuilderCreateInsertAllWithIdentityForThreeBatches()
        {
            // Setup
            var statementBuilder = new SqlServerStatementBuilder();
            var queryBuilder     = new QueryBuilder();
            var tableName        = "Table";
            var fields           = Field.From(new[] { "Field1", "Field2", "Field3" }, Helper.DbSetting);
            var identityField    = new DbField("Field1", false, true, false, typeof(int), null, null, null, null, Helper.DbSetting);

            // Act
            var actual = statementBuilder.CreateInsertAll(queryBuilder: queryBuilder,
                                                          tableName: tableName,
                                                          fields: fields,
                                                          batchSize: 3,
                                                          primaryField: null,
                                                          identityField: identityField);
            var expected = $"" +
                           $"INSERT INTO [Table] " +
                           $"( [Field2], [Field3] ) " +
                           $"VALUES " +
                           $"( @Field2, @Field3 ) ; " +
                           $"SET @Field1 = CONVERT(INT, SCOPE_IDENTITY()) ; " +
                           $"INSERT INTO [Table] " +
                           $"( [Field2], [Field3] ) " +
                           $"VALUES " +
                           $"( @Field2_1, @Field3_1 ) ; " +
                           $"SET @Field1_1 = CONVERT(INT, SCOPE_IDENTITY()) ; " +
                           $"INSERT INTO [Table] " +
                           $"( [Field2], [Field3] ) " +
                           $"VALUES " +
                           $"( @Field2_2, @Field3_2 ) ; " +
                           $"SET @Field1_2 = CONVERT(INT, SCOPE_IDENTITY()) ;";

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