public void ThrowExceptionIfAQualifierFieldIsNotPresentAtDataEntityFieldMapping()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder <ThrowExceptionIfAQualifierFieldIsNotPresentAtDataEntityFieldMappingClass>();
            var fields           = Field.From(new[] { "Field1", "Field2", "Field4" });
            var qualifiers       = Field.From(new[] { "Field1", "Field3" });

            // Act/Assert
            statementBuilder.CreateInlineMerge(queryBuilder, fields, qualifiers);
        }
        public void ThrowExceptionIfFieldIsIgnoreInlineMerge()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder <ThrowExceptionIfFieldIsIgnoreInlineMergeClass>();
            var fields           = Field.From(new[] { "Field1", "Field2", "Field3" });
            var qualifiers       = Field.From(new[] { "Field1" });

            // Act/Assert
            statementBuilder.CreateInlineMerge(queryBuilder, fields, qualifiers);
        }
        public void ThrowExceptionIfNoQualifiersAndNoPrimaryFieldDefined()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder <ThrowExceptionIfNoQualifiersAndNoPrimaryFieldDefinedClass>();
            var fields           = Field.From(new[] { "Field1", "Field2", "Field3" });
            var qualifiers       = (IEnumerable <Field>)null;

            // Act/Assert
            statementBuilder.CreateInlineMerge(queryBuilder, fields, qualifiers);
        }
        public void ThrowExceptionIfTheQualifiersAreNullWithoutPrimaryKey()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder <ThrowExceptionIfTheQualifiersAreNullWithoutPrimaryKeyClass>();
            var fields           = Field.From(new[] { "Field1" });
            var qualifiers       = (IEnumerable <Field>)null;

            // Act/Assert
            statementBuilder.CreateInlineMerge(queryBuilder, fields, qualifiers);
        }
Ejemplo n.º 5
0
        public void ThrowExceptionOnSqlDbProviderCreateInlineMergeIfTheFieldsAreNull()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder <ThrowExceptionOnSqlDbProviderCreateInlineMergeIfTheFieldsAreNullClass>();
            var fields           = (IEnumerable <Field>)null;
            var qualifiers       = Field.From(new[] { "Field1" });

            // Act/Assert
            statementBuilder.CreateInlineMerge(queryBuilder, fields, qualifiers);
        }
Ejemplo n.º 6
0
        public void ThrowExceptionOnSqlDbProviderCreateInlineMergeIfAnIdentityFieldIsNotAPrimaryField()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder <ThrowExceptionOnSqlDbProviderCreateInlineMergeIfAnIdentityFieldIsNotAPrimaryFieldClass>();
            var fields           = Field.From(new[] { "Field1", "Field2", "Field3" });
            var qualifiers       = Field.From(new[] { "Field1" });

            // Act/Assert
            statementBuilder.CreateInlineMerge(queryBuilder, fields, qualifiers);
        }
        public void TestWithOverrideIgnoreFromUpdate()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder <TestWithOverrideIgnoreFromUpdateClass>();
            var fields           = Field.From(new[] { "Field1", "Field2", "Field3" });
            var qualifiers       = Field.From(new[] { "Field1" });

            // Act
            var actual   = statementBuilder.CreateInlineMerge(queryBuilder, fields, qualifiers, true);
            var expected = $"" +
                           $"MERGE [TestWithOverrideIgnoreFromUpdateClass] AS T " +
                           $"USING ( SELECT @Field1 AS [Field1], @Field2 AS [Field2], @Field3 AS [Field3] ) " +
                           $"AS S ON ( S.[Field1] = T.[Field1] ) " +
                           $"WHEN NOT MATCHED THEN " +
                           $"INSERT ( [Field1], [Field2], [Field3] ) " +
                           $"VALUES ( S.[Field1], S.[Field2], S.[Field3] ) " +
                           $"WHEN MATCHED THEN " +
                           $"UPDATE SET [Field1] = S.[Field1], [Field2] = S.[Field2], [Field3] = S.[Field3] ;";

            // Assert
            Assert.AreEqual(expected, actual);
        }
        public void TestWithClassMappingIdField()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder <TestWithClassMappingIdFieldClass>();
            var fields           = Field.From(new[] { "ClassNameId", "Field2", "Field3" });
            var qualifiers       = (IEnumerable <Field>)null;

            // Act
            var actual   = statementBuilder.CreateInlineMerge(queryBuilder, fields, qualifiers);
            var expected = $"" +
                           $"MERGE [ClassName] AS T " +
                           $"USING ( SELECT @ClassNameId AS [ClassNameId], @Field2 AS [Field2], @Field3 AS [Field3] ) " +
                           $"AS S ON ( S.[ClassNameId] = T.[ClassNameId] ) " +
                           $"WHEN NOT MATCHED THEN " +
                           $"INSERT ( [ClassNameId], [Field2], [Field3] ) " +
                           $"VALUES ( S.[ClassNameId], S.[Field2], S.[Field3] ) " +
                           $"WHEN MATCHED THEN " +
                           $"UPDATE SET [Field2] = S.[Field2], [Field3] = S.[Field3] ;";

            // Assert
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 9
0
        public void TestSqlDbProviderCreateInlineMergeWithAttributeMappings()
        {
            // Setup
            var statementBuilder = new SqlStatementBuilder();
            var queryBuilder     = new QueryBuilder <TestSqlDbProviderCreateInlineMergeWithAttributeMappingsClass>();
            var fields           = Field.From(new[] { "Field1", "Field2", "Field4" });
            var qualifiers       = Field.From(new[] { "Field1" });

            // Act
            var actual   = statementBuilder.CreateInlineMerge(queryBuilder, fields, qualifiers);
            var expected = $"" +
                           $"MERGE [TestSqlDbProviderCreateInlineMergeWithAttributeMappingsClass] AS T " +
                           $"USING ( SELECT @Field1 AS [Field1], @Field2 AS [Field2], @Field4 AS [Field4] ) " +
                           $"AS S ON ( S.[Field1] = T.[Field1] ) " +
                           $"WHEN NOT MATCHED THEN " +
                           $"INSERT ( [Field1], [Field2], [Field4] ) " +
                           $"VALUES ( S.[Field1], S.[Field2], S.[Field4] ) " +
                           $"WHEN MATCHED THEN " +
                           $"UPDATE SET [Field2] = S.[Field2], [Field4] = S.[Field4] ;";

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