@Test void testWildcardInTheMiddle() { final WildcardMatcher matcher = WildcardMatcher.valueOf("/foo/*/baz"); assertSoftly(softly -> { softly.assertThat(matcher.toString()).isEqualTo("/foo/*/baz"); softly.assertThat(matcher.matches("/foo/bar/baz")).isTrue(); softly.assertThat(matcher.matches("/foo/bar", "/baz")).isTrue(); softly.assertThat(matcher.matches("/foo/bar/b", "az")).isTrue(); softly.assertThat(matcher.matches("/foo/bar", "/boaz")).isFalse(); softly.assertThat(matcher.matches("/foo/bar")).isFalse(); }); }
@Test void testMatchesStartsWith() { final WildcardMatcher matcher = WildcardMatcher.valueOf("foo*"); assertSoftly(softly -> { softly.assertThat(matcher.toString()).isEqualTo("foo*"); softly.assertThat(matcher.matches("foo")).isTrue(); softly.assertThat(matcher.matches("foobar")).isTrue(); softly.assertThat(matcher.matches("bar")).isFalse(); softly.assertThat(matcher.matches("barfoo")).isFalse(); softly.assertThat(matcher.matches("rfoo")).isFalse(); }); }
@Test void testCompoundWildcardMatcher4() { final WildcardMatcher matcher = WildcardMatcher.valueOf("*foo*far*"); assertSoftly(softly -> { softly.assertThat(matcher.toString()).isEqualTo("*foo*far*"); softly.assertThat(matcher.matches("foofar")).isTrue(); softly.assertThat(matcher.matches("foo/far/foo/baz")).isTrue(); softly.assertThat(matcher.matches("/foo/far/baz")).isTrue(); softly.assertThat(matcher.matches("/far/foo")).isFalse(); softly.assertThat(matcher.matches("farfoo")).isFalse(); }); }
@Test void testMatchesInfix() { final WildcardMatcher matcher = WildcardMatcher.valueOf("*foo*"); assertSoftly(softly -> { softly.assertThat(matcher.toString()).isEqualTo("*foo*"); softly.assertThat(matcher.matches("foo")).isTrue(); softly.assertThat(matcher.matches("foobar")).isTrue(); softly.assertThat(matcher.matches("bar")).isFalse(); softly.assertThat(matcher.matches("barfoo")).isTrue(); softly.assertThat(matcher.matches("barfoobaz")).isTrue(); }); }
@Test void testMatchesInfix_ignoreCase() { final WildcardMatcher matcher = WildcardMatcher.valueOf("*foo*"); assertSoftly(softly -> { softly.assertThat(matcher.toString()).isEqualTo("*foo*"); softly.assertThat(matcher.matches("FOO")).isTrue(); softly.assertThat(matcher.matches("foOBar")).isTrue(); softly.assertThat(matcher.matches("BAR")).isFalse(); softly.assertThat(matcher.matches("baRFOo")).isTrue(); softly.assertThat(matcher.matches("BARFOOBAZ")).isTrue(); }); }
@Test void testMatchesNoWildcard() { final WildcardMatcher matcher = WildcardMatcher.valueOf("foo"); assertSoftly(softly -> { softly.assertThat(matcher.toString()).isEqualTo("foo"); // requires concatenating the string softly.assertThat(matcher.matches("fo", "o")).isTrue(); softly.assertThat(matcher.matches("foo")).isTrue(); softly.assertThat(matcher.matches("foo", "bar")).isFalse(); softly.assertThat(matcher.matches("foobar")).isFalse(); }); }
@Test void testCompoundWildcardMatcher2() { final WildcardMatcher matcher = WildcardMatcher.valueOf("*foo*bar*"); assertSoftly(softly -> { softly.assertThat(matcher.toString()).isEqualTo("*foo*bar*"); softly.assertThat(matcher.matches("foobar")).isTrue(); softly.assertThat(matcher.matches("foo/bar/foo/baz")).isTrue(); softly.assertThat(matcher.matches("/foo/bar/baz")).isTrue(); softly.assertThat(matcher.matches("bar/foo")).isFalse(); softly.assertThat(matcher.matches("barfoo")).isFalse(); }); }
@Test void testMatchesEndsWith() { final WildcardMatcher matcher = WildcardMatcher.valueOf("*foo"); assertSoftly(softly -> { softly.assertThat(matcher.toString()).isEqualTo("*foo"); softly.assertThat(matcher.matches("foo")).isTrue(); softly.assertThat(matcher.matches("foobar")).isFalse(); softly.assertThat(matcher.matches("bar")).isFalse(); softly.assertThat(matcher.matches("barfoo")).isTrue(); softly.assertThat(matcher.matches("foor")).isFalse(); }); }
@Test void testMatchesEquals() { final WildcardMatcher matcher = WildcardMatcher.valueOf("foo"); assertSoftly(softly -> { softly.assertThat(matcher.toString()).isEqualTo("foo"); softly.assertThat(matcher.matches("foo")).isTrue(); softly.assertThat(matcher.matches("foobar")).isFalse(); softly.assertThat(matcher.matches("bar")).isFalse(); softly.assertThat(matcher.matches("barfoo")).isFalse(); }); }
@Test void testMatchesInfixPartitionedString_notAllocationFree() { final WildcardMatcher matcher = WildcardMatcher.valueOf("*foo*"); assertSoftly(softly -> { softly.assertThat(matcher.toString()).isEqualTo("*foo*"); // requires concatenating the string softly.assertThat(matcher.matches("fo", "o")).isTrue(); softly.assertThat(matcher.matches("fo", null)).isFalse(); softly.assertThat(matcher.matches("barfo", "obaz")).isTrue(); softly.assertThat(matcher.matches("bar", "baz")).isFalse(); }); }
@Test void testMatchesStartsWith_ignoreCase() { final WildcardMatcher matcher = WildcardMatcher.valueOf("foo*"); assertSoftly(softly -> { softly.assertThat(matcher.toString()).isEqualTo("foo*"); softly.assertThat(matcher.matches("foo")).isTrue(); softly.assertThat(matcher.matches("foobar")).isTrue(); softly.assertThat(matcher.matches("bar")).isFalse(); softly.assertThat(matcher.matches("barfoo")).isFalse(); }); }
@Test void testMatchesNoWildcard_ignoreCase() { final WildcardMatcher matcher = WildcardMatcher.valueOf("foo"); assertSoftly(softly -> { softly.assertThat(matcher.toString()).isEqualTo("foo"); softly.assertThat(matcher.matches("FO", "O")).isTrue(); softly.assertThat(matcher.matches("FOO")).isTrue(); softly.assertThat(matcher.matches("foO", "Bar")).isFalse(); softly.assertThat(matcher.matches("foobar")).isFalse(); }); }
@Test void testMatchesEquals_ignoreCase() { final WildcardMatcher matcher = WildcardMatcher.valueOf("foo"); assertSoftly(softly -> { softly.assertThat(matcher.toString()).isEqualTo("foo"); softly.assertThat(matcher.matches("fOo")).isTrue(); softly.assertThat(matcher.matches("foOBar")).isFalse(); softly.assertThat(matcher.matches("BAR")).isFalse(); softly.assertThat(matcher.matches("barfoo")).isFalse(); }); }
@Test void testCompoundWildcardMatcher() { final WildcardMatcher matcher = WildcardMatcher.valueOf("*foo*foo*"); assertSoftly(softly -> { softly.assertThat(matcher.toString()).isEqualTo("*foo*foo*"); softly.assertThat(matcher.matches("foofoo")).isTrue(); softly.assertThat(matcher.matches("foo/bar/foo")).isTrue(); softly.assertThat(matcher.matches("/foo/bar/foo/bar")).isTrue(); softly.assertThat(matcher.matches("foo")).isFalse(); }); }
@Test void testMatchesInfixPartitionedString_allocationFree() { final WildcardMatcher matcher = WildcardMatcher.valueOf("*foo*"); assertSoftly(softly -> { softly.assertThat(matcher.toString()).isEqualTo("*foo*"); // no allocations necessary softly.assertThat(matcher.matches("foo", "bar")).isTrue(); softly.assertThat(matcher.matches("bar", "foo")).isTrue(); softly.assertThat(matcher.matches("barfoo", "baz")).isTrue(); softly.assertThat(matcher.matches("ba", "rfoo")).isTrue(); }); }
@Test void testMatchesEndsWith_ignoreCase() { final WildcardMatcher matcher = WildcardMatcher.valueOf("*foo"); assertSoftly(softly -> { softly.assertThat(matcher.toString()).isEqualTo("*foo"); softly.assertThat(matcher.matches("fOo")).isTrue(); softly.assertThat(matcher.matches("foobar")).isFalse(); softly.assertThat(matcher.matches("bar")).isFalse(); softly.assertThat(matcher.matches("baRFoo")).isTrue(); }); }
@Test void testMatchesInfix_caseSensitive() { final WildcardMatcher matcher = WildcardMatcher.valueOf("(?-i)*foo*"); assertSoftly(softly -> { softly.assertThat(matcher.toString()).isEqualTo("(?-i)*foo*"); softly.assertThat(matcher.matches("foo")).isTrue(); softly.assertThat(matcher.matches("FOO")).isFalse(); }); }