@Test public void testHasOpNonStringExpression() { FormValidation validation = testValidator.validateFilterExpression("VersionCounter has 1"); assertEquals( "Invalid if has operator used with number", FormValidation.Kind.WARNING, validation.kind); validation = testValidator.validateFilterExpression("VersionCounter has True"); assertEquals( "Invalid if has operator used with boolean", FormValidation.Kind.WARNING, validation.kind); }
@Test public void testMissingQuoteExpression() { FormValidation validation = testValidator.validateFilterExpression("Name = 'test"); assertEquals( "Invalid if closing quotation mark is missing", FormValidation.Kind.WARNING, validation.kind); validation = testValidator.validateFilterExpression("Name = test\""); assertEquals( "Invalid if opening quotation mark is missing", FormValidation.Kind.WARNING, validation.kind); }
@Test public void testRelOpNotNumberExpression() { FormValidation validation = testValidator.validateFilterExpression("Name > 'test'"); assertEquals( "Invalid if relational operator used with string", FormValidation.Kind.WARNING, validation.kind); validation = testValidator.validateFilterExpression("VersionCounter >= False'"); assertEquals( "Invalid if relational operator used with boolean", FormValidation.Kind.WARNING, validation.kind); }
@Test public void testSingleQuotedExpression() { final FormValidation validation = testValidator.validateFilterExpression("'Test Comment' = 'test'"); assertEquals( "Valid if single quotes used with string", FormValidation.Kind.OK, validation.kind); }
@Test public void testEqualsOpNumberExpression() { final FormValidation validation = testValidator.validateFilterExpression("'Estimated Duration [min]'=1"); assertEquals( "Valid if equals operator used with number", FormValidation.Kind.OK, validation.kind); }
@Test public void testValidComplexExpression() { final FormValidation validation = testValidator.validateFilterExpression( "(Name=\"test\" and (Status='FAILED' or 'Test Comment' has 't?st*') " + "or 'Execution Priority'>=1 and VersionCounter=True)"); assertEquals("Valid complex filter expression", FormValidation.Kind.OK, validation.kind); }
@Test public void testMissingBracketExpression() { final FormValidation validation = testValidator.validateFilterExpression("(Name='test'"); assertEquals( "Error if bracket missing in filter expression", FormValidation.Kind.WARNING, validation.kind); }
@Test public void testMissingLogicOperatorExpression() { final FormValidation validation = testValidator.validateFilterExpression("Name='test' Status='FAILED'"); assertEquals( "Error if logical operator missing in filter expression", FormValidation.Kind.WARNING, validation.kind); }
@Test public void testRelOpNumberExpression() { FormValidation validation = testValidator.validateFilterExpression("VersionCounter < 1"); assertEquals( "Valid if less than operator used with number", FormValidation.Kind.OK, validation.kind); validation = testValidator.validateFilterExpression("VersionCounter > 1"); assertEquals( "Valid if greater than operator used with number", FormValidation.Kind.OK, validation.kind); validation = testValidator.validateFilterExpression("VersionCounter <= 1"); assertEquals( "Valid if less than equals operator used with number", FormValidation.Kind.OK, validation.kind); validation = testValidator.validateFilterExpression("VersionCounter >= 1"); assertEquals( "Valid if greater than equals operator used with number", FormValidation.Kind.OK, validation.kind); }
@Test public void testDoubleQuotedExpression() { final FormValidation validation = testValidator.validateFilterExpression("Name = \"test\""); assertEquals( "Valid if double quotes used with string", FormValidation.Kind.OK, validation.kind); }
@Test public void testHasnotOpStringExpression() { final FormValidation validation = testValidator.validateFilterExpression("Name hasnot 'test'"); assertEquals( "Valid if hasnot operator used with string", FormValidation.Kind.OK, validation.kind); }
@Test public void testNullExpression() { final FormValidation validation = testValidator.validateFilterExpression(null); assertEquals("Valid if no filter expression", FormValidation.Kind.OK, validation.kind); }
@Test public void testStringExpression() { final FormValidation validation = testValidator.validateFilterExpression("Name='test'"); assertEquals("Valid string filter expression", FormValidation.Kind.OK, validation.kind); }
@Test public void testEqualsOpBooleanExpression() { final FormValidation validation = testValidator.validateFilterExpression("VersionCounter=True"); assertEquals( "Valid if equals operator used with boolean", FormValidation.Kind.OK, validation.kind); }
@Test public void testWildCardExpression() { final FormValidation validation = testValidator.validateFilterExpression("'test*123?abc'"); assertEquals("Valid if wildcards used", FormValidation.Kind.OK, validation.kind); }
@Test public void testParameterizedExpression() { final FormValidation validation = testValidator.validateFilterExpression("${FILTER}"); assertEquals( "Warning if parameterized filter expression", FormValidation.Kind.WARNING, validation.kind); }
@Test public void testBooleanFilterExpression() { final FormValidation validation = testValidator.validateFilterExpression("VersionCounter=True"); assertEquals("Valid boolean filter expression", FormValidation.Kind.OK, validation.kind); }
@Test public void testNumericFilterExpression() { final FormValidation validation = testValidator.validateFilterExpression("'Estimated Duration [min]'=1"); assertEquals("Valid numeric filter expression", FormValidation.Kind.OK, validation.kind); }
@Test public void testInvalidExpression() { final FormValidation validation = testValidator.validateFilterExpression("invalid filter"); assertEquals( "Error if invalid filter expression", FormValidation.Kind.WARNING, validation.kind); }
// Validation of filter expression @Test public void testEmptyExpression() { final FormValidation validation = testValidator.validateFilterExpression(""); assertEquals("Valid if empty filter expression", FormValidation.Kind.OK, validation.kind); }