Tests improvements

Improved tests against query filters
This commit is contained in:
Valentino Orlandi 2024-01-28 17:56:16 +01:00
parent 292b3aa671
commit 359c7f22e7
Signed by: elB4RTO
GPG Key ID: 1719E976DB2D4E71
1 changed files with 103 additions and 131 deletions

View File

@ -988,17 +988,21 @@ void testCrapviewModules()
{
//// FILTERS ////
assert( FilterOps::parseNull(" null ").value() == "NULL" );
assert( FilterOps::parseNull(" not null ").value() == "NOT NULL" );
assert( FilterOps::parseNull("not null").value() == "NOT NULL" );
assert( FilterOps::parseNull("! null").value() == "NOT NULL" );
assert( FilterOps::parseNull("null").value() == "NULL" );
assert( FilterOps::parseNull("NULL").value() == "NULL" );
assert( FilterOps::parseNull("not null").value() == "NOT NULL" );
assert( FilterOps::parseNull("NOT NULL").value() == "NOT NULL" );
assert( FilterOps::parseNull("!NULL").value() == "NOT NULL" );
assert( FilterOps::parseNull("! NULL").value() == "NOT NULL" );
assert( FilterOps::parseNull("null").value() == " IS NULL" );
assert( FilterOps::parseNull("NULL").value() == " IS NULL" );
assert( FilterOps::parseNull("not null").value() == " IS NOT NULL" );
assert( FilterOps::parseNull("NOT NULL").value() == " IS NOT NULL" );
assert( FilterOps::parseNull("!NULL").value() == " IS NOT NULL" );
assert( FilterOps::parseNull("! NULL").value() == " IS NOT NULL" );
// try to brake
assert( FilterOps::parseNull(" null ").value() == " IS NULL" );
assert( FilterOps::parseNull(" not null ").value() == " IS NOT NULL" );
assert( FilterOps::parseNull("not null").value() == " IS NOT NULL" );
assert( FilterOps::parseNull("! null").value() == " IS NOT NULL" );
// test for invalid filter
assert( ! FilterOps::parseNull("").has_value() );
assert( ! FilterOps::parseNull(" ").has_value() );
assert( ! FilterOps::parseNull(" \t\n ").has_value() );
assert( ! FilterOps::parseNull("123").has_value() );
assert( ! FilterOps::parseNull("abc").has_value() );
assert( ! FilterOps::parseNull("*").has_value() );
@ -1007,150 +1011,118 @@ void testCrapviewModules()
T_PRINT("FilterOps::parseNull");
assert( FilterOps::parseTextualFilter("").value() == "" );
assert( FilterOps::parseTextualFilter("null").value() == "NULL" );
assert( FilterOps::parseTextualFilter("not null").value() == "NOT NULL" );
assert( FilterOps::parseTextualFilter("*").value() == "NOT NULL" );
assert( FilterOps::parseTextualFilter(" a test string ").value() == "a test string" );
assert( FilterOps::parseTextualFilter("[test 123 #!?]").value() == "[test 123 #!?]" );
assert( FilterOps::parseTextualFilter(" ").value() == "" );
assert( FilterOps::parseTextualFilter(" \t\n ").value() == "" );
assert( FilterOps::parseTextualFilter("null").value() == " IS NULL" );
assert( FilterOps::parseTextualFilter("not null").value() == " IS NOT NULL" );
assert( FilterOps::parseTextualFilter("*").value() == " IS NOT NULL" );
assert( FilterOps::parseTextualFilter("test").value() == " LIKE 'test'" );
assert( FilterOps::parseTextualFilter("!test").value() == " NOT LIKE 'test'" );
assert( FilterOps::parseTextualFilter("\\!test").value() == " LIKE '!test'" );
assert( FilterOps::parseTextualFilter(" test").value() == " LIKE 'test'" );
assert( FilterOps::parseTextualFilter("\\ test").value() == " LIKE ' test'" );
// try to brake
assert( FilterOps::parseTextualFilter(" a test string ").value() == " LIKE 'a test string'" );
assert( FilterOps::parseTextualFilter("! a test string").value() == " NOT LIKE 'a test string'" );
assert( FilterOps::parseTextualFilter("[test 123 #!?]").value() == " LIKE '[test 123 #!?]'" );
T_PRINT("FilterOps::parseTextualFilter");
assert( FilterOps::parseNumericFilter("").value() == "" );
assert( FilterOps::parseNumericFilter("null").value() == "NULL" );
assert( FilterOps::parseNumericFilter("not null").value() == "NOT NULL" );
assert( FilterOps::parseNumericFilter(" 123 ").value() == "= 123" );
assert( FilterOps::parseNumericFilter(" = 123 ").value() == "= 123" );
assert( FilterOps::parseNumericFilter(" ! 123 ").value() == "!= 123" );
assert( FilterOps::parseNumericFilter("123").value() == "= 123" );
assert( FilterOps::parseNumericFilter("=123").value() == "= 123" );
assert( FilterOps::parseNumericFilter("= 123").value() == "= 123" );
assert( FilterOps::parseNumericFilter("==123").value() == "= 123" );
assert( FilterOps::parseNumericFilter("== 123").value() == "= 123" );
assert( FilterOps::parseNumericFilter("eq 123").value() == "= 123" );
assert( FilterOps::parseNumericFilter("!123").value() == "!= 123" );
assert( FilterOps::parseNumericFilter("!=123").value() == "!= 123" );
assert( FilterOps::parseNumericFilter("!= 123").value() == "!= 123" );
assert( FilterOps::parseNumericFilter("ne 123").value() == "!= 123" );
assert( FilterOps::parseNumericFilter(">123").value() == "> 123" );
assert( FilterOps::parseNumericFilter("> 123").value() == "> 123" );
assert( FilterOps::parseNumericFilter("gt 123").value() == "> 123" );
assert( FilterOps::parseNumericFilter(">=123").value() == ">= 123" );
assert( FilterOps::parseNumericFilter(">= 123").value() == ">= 123" );
assert( FilterOps::parseNumericFilter("ge 123").value() == ">= 123" );
assert( FilterOps::parseNumericFilter("<123").value() == "< 123" );
assert( FilterOps::parseNumericFilter("< 123").value() == "< 123" );
assert( FilterOps::parseNumericFilter("lt 123").value() == "< 123" );
assert( FilterOps::parseNumericFilter("<=123").value() == "<= 123" );
assert( FilterOps::parseNumericFilter("<= 123").value() == "<= 123" );
assert( FilterOps::parseNumericFilter("le 123").value() == "<= 123" );
assert( FilterOps::parseNumericFilter(" ").value() == "" );
assert( FilterOps::parseNumericFilter(" \t\n ").value() == "" );
assert( FilterOps::parseNumericFilter("null").value() == " IS NULL" );
assert( FilterOps::parseNumericFilter("not null").value() == " IS NOT NULL" );
assert( FilterOps::parseNumericFilter("123").value() == "=123" );
assert( FilterOps::parseNumericFilter("=123").value() == "=123" );
assert( FilterOps::parseNumericFilter("= 123").value() == "=123" );
assert( FilterOps::parseNumericFilter("==123").value() == "==123" );
assert( FilterOps::parseNumericFilter("== 123").value() == "==123" );
assert( FilterOps::parseNumericFilter("eq 123").value() == "=123" );
assert( FilterOps::parseNumericFilter("EQ 123").value() == "=123" );
assert( FilterOps::parseNumericFilter("!123").value() == "!=123" );
assert( FilterOps::parseNumericFilter("!=123").value() == "!=123" );
assert( FilterOps::parseNumericFilter("!= 123").value() == "!=123" );
assert( FilterOps::parseNumericFilter("ne 123").value() == "!=123" );
assert( FilterOps::parseNumericFilter("NE 123").value() == "!=123" );
assert( FilterOps::parseNumericFilter(">123").value() == ">123" );
assert( FilterOps::parseNumericFilter("> 123").value() == ">123" );
assert( FilterOps::parseNumericFilter("gt 123").value() == ">123" );
assert( FilterOps::parseNumericFilter("GT 123").value() == ">123" );
assert( FilterOps::parseNumericFilter(">=123").value() == ">=123" );
assert( FilterOps::parseNumericFilter(">= 123").value() == ">=123" );
assert( FilterOps::parseNumericFilter("ge 123").value() == ">=123" );
assert( FilterOps::parseNumericFilter("GE 123").value() == ">=123" );
assert( FilterOps::parseNumericFilter("<123").value() == "<123" );
assert( FilterOps::parseNumericFilter("< 123").value() == "<123" );
assert( FilterOps::parseNumericFilter("lt 123").value() == "<123" );
assert( FilterOps::parseNumericFilter("LT 123").value() == "<123" );
assert( FilterOps::parseNumericFilter("<=123").value() == "<=123" );
assert( FilterOps::parseNumericFilter("<= 123").value() == "<=123" );
assert( FilterOps::parseNumericFilter("le 123").value() == "<=123" );
assert( FilterOps::parseNumericFilter("LE 123").value() == "<=123" );
// try to brake
assert( FilterOps::parseNumericFilter(" 123 ").value() == "=123" );
assert( FilterOps::parseNumericFilter("1 2 3").value() == "=123" );
assert( FilterOps::parseNumericFilter(" = 12 3 ").value() == "=123" );
assert( FilterOps::parseNumericFilter("= =123").value() == "==123" );
assert( FilterOps::parseNumericFilter(" = = 1 2 3 ").value() == "==123" );
assert( FilterOps::parseNumericFilter(" ! 123 ").value() == "!=123" );
assert( FilterOps::parseNumericFilter("! =123").value() == "!=123" );
assert( FilterOps::parseNumericFilter("! = 123").value() == "!=123" );
assert( FilterOps::parseNumericFilter("eq123").value() == "=123" );
assert( FilterOps::parseNumericFilter("EQ123").value() == "=123" );
assert( FilterOps::parseNumericFilter(" E Q 1 2 3 ").value() == "=123" );
assert( FilterOps::parseNumericFilter("ne123").value() == "!=123" );
assert( FilterOps::parseNumericFilter("NE123").value() == "!=123" );
assert( FilterOps::parseNumericFilter(" N E 1 2 3 ").value() == "!=123" );
assert( FilterOps::parseNumericFilter("gt123").value() == ">123" );
assert( FilterOps::parseNumericFilter("GT123").value() == ">123" );
assert( FilterOps::parseNumericFilter(" G T 1 2 3 ").value() == ">123" );
assert( FilterOps::parseNumericFilter("ge123").value() == ">=123" );
assert( FilterOps::parseNumericFilter("GE123").value() == ">=123" );
assert( FilterOps::parseNumericFilter(" G E 1 2 3 ").value() == ">=123" );
assert( FilterOps::parseNumericFilter("lt123").value() == "<123" );
assert( FilterOps::parseNumericFilter("LT123").value() == "<123" );
assert( FilterOps::parseNumericFilter(" L T 1 2 3 ").value() == "<123" );
assert( FilterOps::parseNumericFilter("le123").value() == "<=123" );
assert( FilterOps::parseNumericFilter("LE123").value() == "<=123" );
assert( FilterOps::parseNumericFilter(" L E 1 2 3 ").value() == "<=123" );
// test for invalid filter
assert( ! FilterOps::parseNumericFilter("*").has_value() );
assert( ! FilterOps::parseNumericFilter("= =123").has_value() );
assert( ! FilterOps::parseNumericFilter("= = 123").has_value() );
assert( ! FilterOps::parseNumericFilter("===123").has_value() );
assert( ! FilterOps::parseNumericFilter("=== 123").has_value() );
assert( ! FilterOps::parseNumericFilter("eq123").has_value() );
assert( ! FilterOps::parseNumericFilter("!>123").has_value() );
assert( ! FilterOps::parseNumericFilter("!> 123").has_value() );
assert( ! FilterOps::parseNumericFilter("!<123").has_value() );
assert( ! FilterOps::parseNumericFilter("!< 123").has_value() );
assert( ! FilterOps::parseNumericFilter("! =123").has_value() );
assert( ! FilterOps::parseNumericFilter("! = 123").has_value() );
assert( ! FilterOps::parseNumericFilter("!==123").has_value() );
assert( ! FilterOps::parseNumericFilter("!== 123").has_value() );
assert( ! FilterOps::parseNumericFilter("ne123").has_value() );
assert( ! FilterOps::parseNumericFilter("!>123").has_value() );
assert( ! FilterOps::parseNumericFilter("!<123").has_value() );
assert( ! FilterOps::parseNumericFilter(">>123").has_value() );
assert( ! FilterOps::parseNumericFilter(">> 123").has_value() );
assert( ! FilterOps::parseNumericFilter("gt123").has_value() );
assert( ! FilterOps::parseNumericFilter("=>123").has_value() );
assert( ! FilterOps::parseNumericFilter("=> 123").has_value() );
assert( ! FilterOps::parseNumericFilter(">==123").has_value() );
assert( ! FilterOps::parseNumericFilter(">== 123").has_value() );
assert( ! FilterOps::parseNumericFilter(">>=123").has_value() );
assert( ! FilterOps::parseNumericFilter(">>= 123").has_value() );
assert( ! FilterOps::parseNumericFilter("ge123").has_value() );
assert( ! FilterOps::parseNumericFilter("<<123").has_value() );
assert( ! FilterOps::parseNumericFilter("<< 123").has_value() );
assert( ! FilterOps::parseNumericFilter("lt123").has_value() );
assert( ! FilterOps::parseNumericFilter("=<123").has_value() );
assert( ! FilterOps::parseNumericFilter("=< 123").has_value() );
assert( ! FilterOps::parseNumericFilter("<==123").has_value() );
assert( ! FilterOps::parseNumericFilter("<== 123").has_value() );
assert( ! FilterOps::parseNumericFilter("<<=123").has_value() );
assert( ! FilterOps::parseNumericFilter("<<= 123").has_value() );
assert( ! FilterOps::parseNumericFilter("le123").has_value() );
assert( ! FilterOps::parseNumericFilter("eq ").has_value() );
assert( ! FilterOps::parseNumericFilter("EQ ").has_value() );
assert( ! FilterOps::parseNumericFilter("EQEQ 123").has_value() );
assert( ! FilterOps::parseNumericFilter("EQ EQ 123").has_value() );
assert( ! FilterOps::parseNumericFilter("NE ").has_value() );
assert( ! FilterOps::parseNumericFilter("NEEQ 123").has_value() );
assert( ! FilterOps::parseNumericFilter("NE EQ 123").has_value() );
assert( ! FilterOps::parseNumericFilter("GT ").has_value() );
assert( ! FilterOps::parseNumericFilter("GTEQ 123").has_value() );
assert( ! FilterOps::parseNumericFilter("GT EQ 123").has_value() );
assert( ! FilterOps::parseNumericFilter("GE ").has_value() );
assert( ! FilterOps::parseNumericFilter("LT ").has_value() );
assert( ! FilterOps::parseNumericFilter("LTEQ 123").has_value() );
assert( ! FilterOps::parseNumericFilter("LT EQ 123").has_value() );
assert( ! FilterOps::parseNumericFilter("LE ").has_value() );
assert( ! FilterOps::parseNumericFilter("abc").has_value() );
assert( ! FilterOps::parseNumericFilter("abc xyz").has_value() );
assert( ! FilterOps::parseNumericFilter("abc 123").has_value() );
assert( ! FilterOps::parseNumericFilter("123 abc").has_value() );
assert( ! FilterOps::parseNumericFilter("1a2b3c").has_value() );
assert( ! FilterOps::parseNumericFilter("123 456").has_value() );
assert( ! FilterOps::parseNumericFilter("+123").has_value() );
assert( ! FilterOps::parseNumericFilter("-123").has_value() );
T_PRINT("FilterOps::parseNumericFilter");
assert( FilterOps::parseBooleanFilter("").value() == "" );
assert( FilterOps::parseBooleanFilter("null").value() == "NULL" );
assert( FilterOps::parseBooleanFilter("not null").value() == "NOT NULL" );
// test for true
assert( FilterOps::parseBooleanFilter("1").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("true").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("TRUE").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("=true").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("=TRUE").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("= true").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("= TRUE").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("==true").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("==TRUE").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("== true").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("== TRUE").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("!=false").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("!=FALSE").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("!= false").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("!= FALSE").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("!false").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("!FALSE").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("! false").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("! FALSE").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("! false").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("! FALSE").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("not false").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("NOT FALSE").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("not false").value() == "= 1" );
assert( FilterOps::parseBooleanFilter("NOT FALSE").value() == "= 1" );
// test for false
assert( FilterOps::parseBooleanFilter("0").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("false").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("FALSE").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("=false").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("=FALSE").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("= false").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("= FALSE").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("==false").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("==FALSE").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("== false").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("== FALSE").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("!=true").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("!=TRUE").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("!= true").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("!= TRUE").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("!true").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("!TRUE").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("! true").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("! TRUE").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("! true").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("! TRUE").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("not true").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("NOT TRUE").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("not true").value() == "= 0" );
assert( FilterOps::parseBooleanFilter("NOT TRUE").value() == "= 0" );
// test for invalid filter
assert( ! FilterOps::parseBooleanFilter("*").has_value() );
assert( ! FilterOps::parseBooleanFilter("2").has_value() );
assert( ! FilterOps::parseBooleanFilter("0 1").has_value() );
assert( ! FilterOps::parseBooleanFilter("abc").has_value() );
assert( ! FilterOps::parseBooleanFilter("true false").has_value() );
T_PRINT("FilterOps::parseBooleanFilter");
}