Exemple #1
0
        public void RewriteShouldCollapeUnion()
        {
            // Arrange
            var subject = new SqlQueryHelper.Parser();

            // Act
            var result = subject.Rewrite(@"select a from b
union
select a from b
union all
select a from b
union
select b from c
union
select b from c
");

            // Assert
            Assert.AreEqual(@"select a from b union select b from c", result);
        }
Exemple #2
0
        public void RewriteShouldReplaceNull()
        {
            // Arrange
            var subject = new SqlQueryHelper.Parser();

            // Act
            var result = subject.Rewrite(@"null");
            var result1 = subject.Rewrite(@"is not null");
            var result2 = subject.Rewrite(@"is null");

            // Assert
            Assert.AreEqual(@"?", result);
            Assert.AreEqual(@"?null?", result1);
            Assert.AreEqual(@"?null?", result2);
        }
Exemple #3
0
        public void RewriteShouldCollapeValues()
        {
            // Arrange
            var subject = new SqlQueryHelper.Parser();

            // Act
            var result = subject.Rewrite(@"values (1, 2, 3, 4)");

            // Assert
            Assert.AreEqual(@"values (?)", result);
        }
Exemple #4
0
        public void RewriteShouldReplaceNumbers()
        {
            // Arrange
            var subject = new SqlQueryHelper.Parser();

            // Act
            var resulta = subject.Rewrite(@"a blah 123 blah");
            var resultb = subject.Rewrite(@"b blah -123 blah");
            var resultc = subject.Rewrite(@"c blah 0xab blah");
            var resultd = subject.Rewrite(@"d blah 1.23 blah");
            var resulte = subject.Rewrite(@"e blah ab12 blah");

            // Assert
            Assert.AreEqual(@"a blah ? blah", resulta);
            Assert.AreEqual(@"b blah ? blah", resultb);
            Assert.AreEqual(@"c blah ? blah", resultc);
            Assert.AreEqual(@"d blah ? blah", resultd);
            Assert.AreEqual(@"e blah ab12 blah", resulte);
        }
Exemple #5
0
        public void RewriteShouldRemoveWhitespace()
        {
            // Arrange
            var subject = new SqlQueryHelper.Parser();

            // Act
            var result = subject.Rewrite(@"
  blah");
            var result1 = subject.Rewrite(@"blah  

  ");
            var result2 = subject.Rewrite(@"blah   blah

blah");

            // Assert
            Assert.AreEqual(@"blah", result);
            Assert.AreEqual(@"blah", result1);
            Assert.AreEqual(@"blah blah blah", result2);
        }
Exemple #6
0
        public void RewriteShouldReplaceMD5s()
        {
            // Arrange
            var subject = new SqlQueryHelper.Parser();

            // Act
            var result = subject.Rewrite(@"blah 79054025255fb1a26e4bc422aef54eb4 blah");
            var result1 = subject.Rewrite(@"blah -79054025255fb1a26e4bc422aef54eb4 blah");
            var result2 = subject.Rewrite(@"blah _79054025255fb1a26e4bc422aef54eb4 blah");
            var result3 = subject.Rewrite(@"blah .79054025255fb1a26e4bc422aef54eb4 blah");
            var result4 = subject.Rewrite(@"blah x79054025255fb1a26e4bc422aef54eb4 blah");

            // Assert
            Assert.AreEqual(@"blah ? blah", result);
            Assert.AreEqual(@"blah ? blah", result1);
            Assert.AreEqual(@"blah ? blah", result2);
            Assert.AreEqual(@"blah ? blah", result3);
            Assert.AreEqual(@"blah x79054025255fb1a26e4bc422aef54eb4 blah", result4);
        }
Exemple #7
0
        public void RewriteShouldReplaceQuotedStrings()
        {
            // Arrange
            var subject = new SqlQueryHelper.Parser();

            // Act
            var result = subject.Rewrite(@"one blah ""blah"" blah");
            var result1 = subject.Rewrite(@"two blah 'blah' blah");
            var result2 = subject.Rewrite(@"three blah ""bl\""ah"" blah");
            var result3 = subject.Rewrite(@"four blah 'bl\'ah' blah");

            // Assert
            Assert.AreEqual(@"one blah ? blah", result);
            Assert.AreEqual(@"two blah ? blah", result1);
            Assert.AreEqual(@"three blah ? blah", result2);
            Assert.AreEqual(@"four blah ? blah", result3);
        }
Exemple #8
0
        public void RewriteShouldGeneraliseUse()
        {
            // Arrange
            var subject = new SqlQueryHelper.Parser();

            // Act
            var result = subject.Rewrite(@"use blahblah");
            var result1 = subject.Rewrite(@"USE blahblah");

            // Assert
            Assert.AreEqual(@"use ?", result);
            Assert.AreEqual(@"use ?", result1);
        }
Exemple #9
0
        public void RewriteShouldRemoveMultipleLineComments()
        {
            // Arrange
            var subject = new SqlQueryHelper.Parser();

            // Act
            var result = subject.Rewrite(@"blah
/* comment
comment
comment */
blah");

            // Assert
            Assert.AreEqual(@"blah blah", result);
        }
Exemple #10
0
        public void RewriteShouldRemoveStoredProcedureArguments()
        {
            // Arrange
            var subject = new SqlQueryHelper.Parser();

            // Act
            var result1 = subject.Rewrite("exec my_proc 1, 2, 3");
            var result2 = subject.Rewrite("execute my_proc 1, 2, 3");
            var result3 = subject.Rewrite("EXEC my_proc 1, 2, 3");
            var result4 = subject.Rewrite("EXECUTE my_proc 1, 2, 3");

            // Assert
            Assert.AreEqual("exec my_proc", result1);
            Assert.AreEqual("execute my_proc", result2);
            Assert.AreEqual("exec my_proc", result3);
            Assert.AreEqual("execute my_proc", result4);
        }