// the particular tests here are motivated by the
// wildcards of the current underlying RE engine,
// GNU regexp.
selector = new Selector("MyString LIKE 'a^$b'");
message.setStringProperty("MyString", "a^$b");
assertTrue(selector.accept(message));
// this one has a double backslash since backslash
// is interpreted specially by Java
selector = new Selector("MyString LIKE 'a\\dc'");
message.setStringProperty("MyString", "a\\dc");
assertTrue(selector.accept(message));
selector = new Selector("MyString LIKE 'a.c'");
message.setStringProperty("MyString", "abc");
assertTrue(!selector.accept(message));
selector = new Selector("MyString LIKE '[abc]'");
message.setStringProperty("MyString", "[abc]");
assertTrue(selector.accept(message));
selector = new Selector("MyString LIKE '[^abc]'");
message.setStringProperty("MyString", "[^abc]");
assertTrue(selector.accept(message));
selector = new Selector("MyString LIKE '[a-c]'");
message.setStringProperty("MyString", "[a-c]");
assertTrue(selector.accept(message));
selector = new Selector("MyString LIKE '[:alpha]'");
message.setStringProperty("MyString", "[:alpha]");
assertTrue(selector.accept(message));
selector = new Selector("MyString LIKE '(abc)'");
message.setStringProperty("MyString", "(abc)");
assertTrue(selector.accept(message));
selector = new Selector("MyString LIKE 'a|bc'");
message.setStringProperty("MyString", "a|bc");
assertTrue(selector.accept(message));
selector = new Selector("MyString LIKE '(abc)?'");
message.setStringProperty("MyString", "(abc)?");
assertTrue(selector.accept(message));
selector = new Selector("MyString LIKE '(abc)*'");
message.setStringProperty("MyString", "(abc)*");
assertTrue(selector.accept(message));
selector = new Selector("MyString LIKE '(abc)+'");
message.setStringProperty("MyString", "(abc)+");
assertTrue(selector.accept(message));
selector = new Selector("MyString LIKE '(abc){3}'");
message.setStringProperty("MyString", "(abc){3}");
assertTrue(selector.accept(message));
selector = new Selector("MyString LIKE '(abc){3,5}'");
message.setStringProperty("MyString", "(abc){3,5}");
assertTrue(selector.accept(message));
selector = new Selector("MyString LIKE '(abc){3,}'");
message.setStringProperty("MyString", "(abc){3,}");
assertTrue(selector.accept(message));
selector = new Selector("MyString LIKE '(?=abc)'");
message.setStringProperty("MyString", "(?=abc)");
assertTrue(selector.accept(message));
selector = new Selector("MyString LIKE '(?!abc)'");
message.setStringProperty("MyString", "(?!abc)");
assertTrue(selector.accept(message));
}