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); }
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); }
public void RewriteShouldCollapeValues() { // Arrange var subject = new SqlQueryHelper.Parser(); // Act var result = subject.Rewrite(@"values (1, 2, 3, 4)"); // Assert Assert.AreEqual(@"values (?)", result); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }