Ejemplo n.º 1
0
        public void NestedStatementTopWithOrderBy_Passes()
        {
            // Arrange
            var rule = new SelectTopWithoutOrderByRule();

            var sqlStatement = "SELECT Anything FROM BaseTable WHERE Id IN (SELECT TOP(5)Id FROM dbo.MyFunkyTable ORDER BY Id DESC)";
            var script       = Analyzer.Parse(sqlStatement);

            // Act
            var results = rule.Evaluate(sqlStatement, script);

            // Assert
            Assert.IsTrue(results.Count == 0);
        }
Ejemplo n.º 2
0
        public void SimpleTopWithOrderBy_Passes()
        {
            // Arrange
            var rule = new SelectTopWithoutOrderByRule();

            var sqlStatement = "SELECT TOP(5) * FROM dbo.MyFunkyTable ORDER BY Id";
            var script       = Analyzer.Parse(sqlStatement);

            // Act
            var results = rule.Evaluate(sqlStatement, script);

            // Assert
            Assert.IsTrue(results.Count == 0);
        }
Ejemplo n.º 3
0
        public void NestedSelectTopWithoutOrderBy_Warns()
        {
            // Arrange
            var rule = new SelectTopWithoutOrderByRule();

            var sqlStatement = "SELECT Anything FROM BaseTable bt INNER JOIN (SELECT TOP(5) Id FROM dbo.MyFunkyTable) mft ON bt.ID = mftID ORDER BY ModifiedDate";
            var script       = Analyzer.Parse(sqlStatement);

            // Act
            var results = rule.Evaluate(sqlStatement, script);

            // Assert
            Assert.IsTrue(results.Count == 1);
            Assert.AreEqual(results.Single().Rule, rule);
        }
Ejemplo n.º 4
0
        public void SimpleTopWithoutOrderBy_Warns()
        {
            // Arrange
            var rule = new SelectTopWithoutOrderByRule();

            var sqlStatement = "SELECT TOP 5 * FROM dbo.MyFunkyTable";
            var script       = Analyzer.Parse(sqlStatement);

            // Act
            var results = rule.Evaluate(sqlStatement, script);

            // Assert
            Assert.IsTrue(results.Count == 1);
            Assert.AreEqual(results.Single().Rule, rule);
        }