@Test public void shouldDealWithAnchoredPattern() { JdkPatternArgumentMatcher matcher = new JdkPatternArgumentMatcher(Pattern.compile("^I wait for (.+) seconds$")); assertNull(matcher.argumentsFrom("I wait for 30 seconds to be sure")); assertEquals(1, matcher.argumentsFrom("I wait for 30 seconds").size()); }
@Test public void canHandleVariableNumberOfArguments() { JdkPatternArgumentMatcher matcher = new JdkPatternArgumentMatcher( Pattern.compile("I wait for (.+) seconds|I wait for some time")); List<Argument> arguments = matcher.argumentsFrom("I wait for 30 seconds to be sure"); List<Argument> optionalArguments = matcher.argumentsFrom("I wait for some time"); assertEquals(1, arguments.size()); assertEquals(1, optionalArguments.size()); assertNull(matcher.argumentsFrom("I wait for some time").get(0).getOffset()); assertNull(matcher.argumentsFrom("I wait for some time").get(0).getVal()); }