Пример #1
0
        public void InvalidSqlInliner()
        {
            const string viewSql = "CREATE OR VIEW dbo.X AS SELECT 0";

            var inliner = new DatabaseViewInliner(connection, viewSql);

            Assert.IsNull(inliner.View);
            Assert.AreNotEqual(viewSql, inliner.Sql);
        }
Пример #2
0
        public void ReturnOriginalIfNoViewsAreReferenced()
        {
            const string viewSql = "CREATE VIEW dbo.X AS SELECT 0";

            var inliner = new DatabaseViewInliner(connection, viewSql);

            Assert.AreEqual(0, inliner.Errors.Count);
            Assert.AreEqual(viewSql, inliner.Sql);
            Assert.IsNotNull(inliner.View);
        }
Пример #3
0
        public void WarningForSinglePartIdentifiers()
        {
            const string viewSql = "CREATE OR ALTER VIEW dbo.VActivePeople AS SELECT Id, FirstName, LastName FROM dbo.VNestedPeople";

            var inliner = new DatabaseViewInliner(connection, viewSql, options);

            Assert.AreEqual(0, inliner.Errors.Count);
            Assert.AreNotEqual(0, inliner.Warnings.Count);
            Assert.AreNotEqual(viewSql, inliner.Sql);
        }
Пример #4
0
        public void InlineSimpleView()
        {
            const string viewSql = "CREATE VIEW dbo.VActivePeople AS SELECT p.Id, p.FirstName, p.LastName FROM dbo.VPeople p WHERE p.IsActive = 1";

            var inliner = new DatabaseViewInliner(connection, viewSql, options);

            Assert.AreEqual(0, inliner.Errors.Count);
            Assert.AreNotEqual(viewSql, inliner.Sql);

            var result = inliner.Result;

            Assert.IsNotNull(result);
            Assert.IsTrue(result.Sql.Contains("dbo.People"));
            Assert.IsTrue(result.ConvertedSql.Contains("dbo.People"));
            Assert.IsFalse(result.ConvertedSql.Contains("dbo.VPeople"));
            Assert.IsFalse(result.ConvertedSql.Contains("UnusedFunction"));
        }
Пример #5
0
        public void InlineSimpleViewWithAliasesWithColumnAliases()
        {
            const string viewSql = "CREATE VIEW dbo.VActivePeople AS SELECT ap.Id, ap.FName PersonFirstName, ap.LName PersonLastName FROM dbo.VPeopleWithAliases ap WHERE ap.ActiveInd = 1";

            var inliner = new DatabaseViewInliner(connection, viewSql, options);

            Assert.AreEqual(0, inliner.Errors.Count);
            Assert.AreNotEqual(viewSql, inliner.Sql);

            var result = inliner.Result;

            Assert.IsNotNull(result);
            Assert.IsTrue(result.Sql.Contains("dbo.People"));
            Assert.IsTrue(result.ConvertedSql.Contains("dbo.People"));
            Assert.IsFalse(result.ConvertedSql.Contains("dbo.VPeopleWithAliases"));
            Assert.IsFalse(result.ConvertedSql.Contains("UnusedFunction"));
            Assert.IsTrue(result.ConvertedSql.Contains("ap.FName AS PersonFirstName"));
        }