/** * Check if the provided status matches the pattern, signalling that the * next State should be executed. * * @param status the status to compare * @return true if the pattern matches this status */ public boolean matches(String status) { return PatternMatcher.match(pattern, status); }
@Override public FieldSet tokenize(String line) { return tokenizers.match(line).tokenize(line); }
@Override public T mapLine(String line, int lineNumber) throws Exception { return patternMatcher.match(line).mapFieldSet(this.tokenizer.tokenize(line)); }
@Test public void testMatchTwoStars() { assertTrue(PatternMatcher.match("a*d*", "abcdeg")); }
@Test public void testMatchPastEndTwoStars() { assertTrue(PatternMatcher.match("a*d*g*", "abcdeg")); }
@Test public void testMatchSingleNo() { assertFalse(PatternMatcher.match("a?c", "ab")); }
@Test public void testMatchSingleWildcardNo() { assertTrue(PatternMatcher.match("a?*", "abc")); }
@Test public void testMatchStarNo() { assertFalse(PatternMatcher.match("a*c", "abdeg")); }
@Test public void testMatchNoWildcardNo() { assertFalse(PatternMatcher.match("abc", "ab")); }
@Test public void testMatchSingleYes() { assertTrue(PatternMatcher.match("a?c", "abc")); }
@Test public void testMatchStarYes() { assertTrue(PatternMatcher.match("a*c", "abdegc")); }
@Test public void testMatchPastEnd() { assertFalse(PatternMatcher.match("a*de", "abcdeg")); }
@Test public void testMatchStarAtEnd() { assertTrue(PatternMatcher.match("ab*", "ab")); }
@Test(expected = IllegalStateException.class) public void testMatchPrefixNoMatch() { new PatternMatcher<>(map).match("bat"); }
@Test public void testMatchPrefixSubsuming() { assertEquals(3, new PatternMatcher<>(map).match("animal").intValue()); }
@Test public void testMatchPrefixDefaultValueNoMatch() { assertEquals(1, new PatternMatcher<>(defaultMap).match("bat").intValue()); } }
@Test public void testMatchPrefixSubsumed() { assertEquals(2, new PatternMatcher<>(map).match("apple").intValue()); }
@Test public void testMatchPrefixUnrelated() { assertEquals(4, new PatternMatcher<>(map).match("biggest").intValue()); }
@Test public void testMatchPrefixDefaultValueUnrelated() { assertEquals(5, new PatternMatcher<>(defaultMap).match("biggest").intValue()); }
@Test public void testMatchPrefixDefaultValueEmptyString() { assertEquals(1, new PatternMatcher<>(defaultMap).match("").intValue()); }