Example #1
0
        public void CompoundAssignment()
        {
            string expectedQuery = @"
                UPDATE [TestTable]
                SET
                    [TestTable].[Id] *= @TestTable_Id,
                    [TestTable].[Title] += @TestTable_Title,
                    [TestTable].[DecimalVal] = @TestTable_DecimalVal
                WHERE [TestTable].[Id] = @TestTable_Id_1
            ";
            Dictionary <string, object> expectedParameters = new Dictionary <string, object> {
                { "TestTable_Id", 1 },
                { "TestTable_Title", "testTitle" },
                { "TestTable_Id_1", 10 },
                { "TestTable_DecimalVal", 3.14m }
            };

            TSqlBuilder builder = new TSqlBuilder();

            builder.Update <TestTable>(
                upd => upd
                .Set(f => f.Id, 1, AssignmentOperator.Multiplication)
                .Set(f => f.Title, "testTitle", AssignmentOperator.Addition)
                .Set(f => f.DecimalVal, 3.14m)
                ).Where(t => t.Id == 10);

            TSqlQuery actualQuery = builder.CompileQuery();

            Assert.AreEqual(NormalizeSqlQuery(expectedQuery), NormalizeSqlQuery(actualQuery.Query));
            CollectionAssert.AreEquivalent(expectedParameters, actualQuery.Parameters);
        }
            public void UpdateIfTrueCondition()
            {
                string expectedQuery = @"
                UPDATE [TestTable]
                SET
                    [TestTable].[Id] = @TestTable_Id,
                    [TestTable].[Title] = @TestTable_Title
                ";
                Dictionary <string, object> expectedParameters = new Dictionary <string, object> {
                    { "TestTable_Id", 1 },
                    { "TestTable_Title", "testTitle" },
                };

                TSqlBuilder builder = new TSqlBuilder();

                builder.Update <TestTable>(
                    upd => upd
                    .Set(f => f.Id, 1, z => z != null)
                    .Set(f => f.Title, "testTitle")
                    );

                TSqlQuery actualQuery = builder.CompileQuery();

                Assert.AreEqual(NormalizeSqlQuery(expectedQuery), NormalizeSqlQuery(actualQuery.Query));
                CollectionAssert.AreEquivalent(expectedParameters, actualQuery.Parameters);
            }
Example #3
0
        public void UpdateWithDeclarationAsParameter()
        {
            string expectedQuery = @"
                UPDATE [TestTable]
                SET
                    [TestTable].[Id] = @TestTable_Id,
                    [TestTable].[Title] = @TestTable_Title
            ";
            Dictionary <string, object> expectedParameters = new Dictionary <string, object> {
                { "TestTable_Id", 1 },
                { "TestTable_Title", "testTitle" },
            };

            TSqlBuilder builder = new TSqlBuilder();

            UpdateDeclaration <TestTable> updDeclaration = new UpdateDeclaration <TestTable>();

            updDeclaration.Set(f => f.Id, 1);
            updDeclaration.Set(f => f.Title, "testTitle");

            builder.Update <TestTable>(updDeclaration);

            TSqlQuery actualQuery = builder.CompileQuery();

            Assert.AreEqual(NormalizeSqlQuery(expectedQuery), NormalizeSqlQuery(actualQuery.Query));
            CollectionAssert.AreEquivalent(expectedParameters, actualQuery.Parameters);
        }
Example #4
0
        public void UpdateWithTsqlStaement()
        {
            string expectedQuery = @"
                UPDATE [TestTable]
                SET
                    [TestTable].[Title] = @TestTable_Title,
                    [TestTable].[CreationDate] = SYSUTCDATETIME()
            ";
            Dictionary <string, object> expectedParameters = new Dictionary <string, object> {
                { "TestTable_Title", "testTitle" },
            };

            TSqlBuilder builder = new TSqlBuilder();

            builder.Update <TestTable>(
                upd => upd
                .Set(f => f.Title, "testTitle")
                .Set(f => f.CreationDate, TSqlStatement.SysUtcDateTimeCall)
                );

            TSqlQuery actualQuery = builder.CompileQuery();

            Assert.AreEqual(NormalizeSqlQuery(expectedQuery), NormalizeSqlQuery(actualQuery.Query));
            CollectionAssert.AreEquivalent(expectedParameters, actualQuery.Parameters);
        }
Example #5
0
        public void UpdateWithColumnSpecifiedMoreThanOnce()
        {
            TSqlBuilder builder = new TSqlBuilder();

            Assert.Throws <ArgumentException>(() => {
                builder.Update <TestTable>(
                    upd => upd
                    .Set(f => f.Title, "ORIGINAL")
                    .Set(f => f.Title, "DUPLICATE")
                    );
            });
        }
Example #6
0
        public void UpdateAndSelectRowCount()
        {
            string expectedQuery = @"
                UPDATE [TestTable]
                SET
                    [TestTable].[Id] = @TestTable_Id,
                    [TestTable].[Title] = @TestTable_Title
                SELECT @@ROWCOUNT
            ";

            TSqlBuilder builder = new TSqlBuilder();

            builder.Update <TestTable>(
                upd => upd
                .Set(f => f.Id, 1)
                .Set(f => f.Title, "testTitle")
                );
            builder.SelectRowCount();

            TSqlQuery actualQuery = builder.CompileQuery();

            Assert.AreEqual(NormalizeSqlQuery(expectedQuery), NormalizeSqlQuery(actualQuery.Query));
        }
Example #7
0
        public void UpdateTableWithEnumFieldAsInt()
        {
            string expectedQuery = @"
                UPDATE [TableWithEnum]
                SET
                    [TableWithEnum].[Enum] = @TableWithEnum_Enum
            ";
            Dictionary <string, object> expectedParameters = new Dictionary <string, object> {
                { "TableWithEnum_Enum", (int)TestEnum.One }
            };

            TSqlBuilder builder = new TSqlBuilder();

            builder.Update <TableWithEnum>(
                upd => upd
                .Set(f => f.Enum, (int)TestEnum.One)
                );

            TSqlQuery actualQuery = builder.CompileQuery();

            Assert.AreEqual(NormalizeSqlQuery(expectedQuery), NormalizeSqlQuery(actualQuery.Query));
            CollectionAssert.AreEquivalent(expectedParameters, actualQuery.Parameters);
        }