@Test public void shouldHandleRegex() { assertTrue(ConditionChecker.match("f3 ~~ \"[0-9]{3}\"", fields)); assertFalse(ConditionChecker.match("f3 !~ \"[0-9]{3}\"", fields)); assertTrue(ConditionChecker.match("f5 !~ \"[0-9]{3}\"", fields)); assertFalse(ConditionChecker.match("f5 ~~ \"[0-9]{3}\"", fields)); }
@Test public void shouldHandleLike() { assertTrue(ConditionChecker.match("f3 !% \"spa\"", fields)); assertFalse(ConditionChecker.match("f3 %% \"spa\"", fields)); assertTrue(ConditionChecker.match("f5 %% \"spa\"", fields)); assertFalse(ConditionChecker.match("f5 !% \"spa\"", fields)); }
@Test public void shouldThrowExceptionIfInvalidSyntaxFound() { try { ConditionChecker.match("f5 == invalid$yntax", fields); assertTrue(false); } catch (InvalidExpressionException e) { } }
@Test public void shouldHandleValueContainingSpaces() { assertTrue(ConditionChecker.match("f5 == \" space \"", fields)); }
@Test public void shouldHandleEmptyString() { assertTrue(ConditionChecker.match("f12 == \"\"", fields)); assertTrue(ConditionChecker.match("f0 != \"\"", fields)); }
@Test public void shouldHandleValueContainingSymbols() { assertTrue(ConditionChecker.match("f13 == \"wow!\"", fields)); }
@Test public void shouldBeUnmatchedForMissingFields() { assertFalse(ConditionChecker.match("f1 == \"005\"", fields)); }
@Test public void shouldHandleNegation() { assertTrue(ConditionChecker.match("f1 != \"005\"", fields)); }
@Test public void shouldBeUnmatchedInComplex() { assertFalse( ConditionChecker.match("f0 == \"005\" && (f3 == \"300\" || f6 == \"700\")", fields)); }
@Test public void shouldBeMatchedInComplex() { assertTrue(ConditionChecker.match("f0 == \"000\" && f3 == \"300\"", fields)); assertTrue(ConditionChecker.match("f0 == \"000\" && (f3 == \"300\" || f6 == \"700\")", fields)); }
@Test public void shouldBeUnmatched() { assertFalse(ConditionChecker.match("f0 == \"005\"", fields)); }
@Test public void shouldBeMatched() { assertTrue(ConditionChecker.match("f0 == \"000\"", fields)); assertTrue(ConditionChecker.match("f0==\"000\"", fields)); }
public boolean checkCondition() { if (condition != null) return condition.isTrue(); else return true; }