@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);
 }