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

            // Act
            var result = subject.Matches("testblahtest", "blah");

            // Assert
            Assert.AreEqual(4, result);
        }
Exemple #2
0
        public void MatchesShouldReturnMinusOneWhenNotMatched()
        {
            // Arrange
            var subject = new SqlQueryHelper.Parser();

            // Act
            var result = subject.Matches("test", "not");

            // Assert
            Assert.AreEqual(-1, result);
        }
Exemple #3
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 #4
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 #5
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 #6
0
        public void MatchingShouldReturnGroupWhenMatched()
        {
            // Arrange
            var subject = new SqlQueryHelper.Parser();

            // Act
            var result = subject.Matching("test blah test", @".*(blah).*", group: 1);

            // Assert
            Assert.AreEqual("blah", result);
        }
Exemple #7
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 #8
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 #9
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 #10
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 #11
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 #12
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);
        }
Exemple #13
0
        public void SubstititeShouldReplaceSimpleMatchesAfterOffset()
        {
            // Arrange
            var subject = new SqlQueryHelper.Parser();

            // Act
            var result = subject.Substitute("test blah test blah test", @"blah", "something", offset: 10);

            // Assert
            Assert.AreEqual("test blah test something test", result);
        }
Exemple #14
0
        public void SubstititeShouldReplaceSimpleMatchesWithGroupWithPadding()
        {
            // Arrange
            var subject = new SqlQueryHelper.Parser();

            // Act
            var result = subject.Substitute("test xblah1blahx test xblah2blahx test", @"blah(.)blah", "#1");

            // Assert
            Assert.AreEqual("test x 1 x test x 2 x test", result);
        }
Exemple #15
0
        public void MatchingShouldReturnNullWhenNotMatched()
        {
            // Arrange
            var subject = new SqlQueryHelper.Parser();

            // Act
            var result = subject.Matching("test", "not");

            // Assert
            Assert.IsNull(result);
        }
Exemple #16
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 #17
0
        public void MatchingShouldReturnSubstringWhenMatched()
        {
            // Arrange
            var subject = new SqlQueryHelper.Parser();

            // Act
            var result = subject.Matching("test blah test", "blah");

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

            // Act
            var result = subject.Matching("test blah test", "blah", group: 1);

            // Assert
            Assert.IsNull(result);
        }