public Matcher matcher() { return new Matcher(matcher); }
@Test public void shouldMatchWordBoundaries() throws Exception { assertThat(new Matcher("!!").matches("!!"), is(true)); assertThat(new Matcher("ja").matches(" ja"), is(true)); assertThat(new Matcher("ja").matches("ja "), is(true)); assertThat(new Matcher("ja").matches(" ja"), is(true)); assertThat(new Matcher("ja").matches("ja:"), is(true)); assertThat(new Matcher("jez.humble@thoughtworks.com").matches("[jez.humble@thoughtworks.com] i checkin"), is(true)); assertThat(new Matcher("ja").matches("ja&jh"), is(true)); }
public List<String> getMatchers() { List<String> matchers = new Matcher(matcher).toCollection(); Collections.sort(matchers); return matchers; }
@Test public void shouldValidateAllMatchersUsingAValidator() throws Exception { new Matcher(new String[]{"aaa,a"}).validateUsing(Validator.lengthValidator(200)); }
public boolean containsMyCheckin(Matcher matcher) { for (MaterialRevision materialRevision : this) { for (Modification modification : materialRevision.getModifications()) { String fullComment = String.format("%s %s", modification.getUserName(), Optional.ofNullable(modification.getComment()).orElse("")); if (matcher.matches(fullComment)) { return true; } } } return false; }
public Matcher(String matcherString) { if (StringUtils.isNotEmpty(matcherString)) { trimAndAdd(matcherString); } }
public boolean matches(String comment) { for (String escapedMatcher : escapeMatchers()) { Pattern pattern = Pattern.compile("\\B" + escapedMatcher + "\\B|\\b" + escapedMatcher + "\\b"); if (pattern.matcher(comment).find()) { return true; } } return false; }
boolean matchModification(MaterialRevisions materialRevisions) { if (StringUtils.isEmpty(this.matcher)) { return false; } return materialRevisions.containsMyCheckin(new Matcher(matcher)); }
@Test public void shouldReturnMatchersAsArray() { assertThat(new Matcher("JH,Pavan").toCollection(), is(Arrays.asList("JH", "Pavan"))); }
@Test public void shouldAllowWhiteSpace() { assertThat(new Matcher("JH Pavan").toCollection().size(), is(1)); }
@Test public void shouldEscapeRegexes() throws Exception { assertThat(new Matcher("[").matches("["), is(true)); assertThat(new Matcher("]").matches("]]"), is(true)); assertThat(new Matcher("\\").matches("\\\\"), is(true)); assertThat(new Matcher("^^").matches("^^"), is(true)); assertThat(new Matcher("$").matches("$$"), is(true)); assertThat(new Matcher("..").matches("..."), is(true)); assertThat(new Matcher("|||").matches("||||"), is(true)); assertThat(new Matcher("??").matches("???"), is(true)); assertThat(new Matcher("**").matches("**"), is(true)); assertThat(new Matcher("++").matches("++"), is(true)); assertThat(new Matcher("((").matches("((("), is(true)); assertThat(new Matcher("))").matches(")))"), is(true)); }