StartsWith extends AbstractValidator<String> { @Override public void validate(String str) { if(str == null || !str.startsWith(getStringArgument())) { addMessage(Status.ERROR, "String must start with: " + getStringArgument()); } }  @Override void validate(String str);  }
@Test public void test() { assertEquals(0, validator.getMessages().size()); validator.validate("str"); assertEquals(Status.OK, validator.getStatus()); assertEquals(0, validator.getMessages().size()); validator.validate("str"); assertEquals(Status.OK, validator.getStatus()); assertEquals(0, validator.getMessages().size()); validator.reset(); validator.setStringArgument("str"); validator.validate("strstr"); assertEquals(Status.OK, validator.getStatus()); assertEquals(0, validator.getMessages().size()); validator.reset(); validator.setStringArgument("str"); validator.validate(null); assertEquals(Status.ERROR, validator.getStatus()); assertEquals(1, validator.getMessages().size()); validator.reset(); validator.setStringArgument("str"); validator.validate(""); assertEquals(Status.ERROR, validator.getStatus()); assertEquals(1, validator.getMessages().size()); validator.reset(); validator.setStringArgument("str"); validator.validate("Ahoj tady je meduza"); assertEquals(Status.ERROR, validator.getStatus()); assertEquals(1, validator.getMessages().size()); }