@Test
@DataProvider(value = {
"/some/{path}/foo | /some/bar/foo | true",
"/some/{path}/f?o | /some/bar/fio | true",
"some/{path}/foo | /some/bar/foo | false",
"/some/{path}/foo | some/bar/foo | false",
"/some/{path}/foo/ | /some/bar/foo | false",
"/some/{path}/foo | /some/bar/foo/ | false",
"/some/{path}/foo/ | /some/bar/foo/ | true",
"/some/{path}/foo | /some/bar/foo/no | false",
"/bef{path}aft | /befTHINGaft | true",
"/bef{path}aft | /befTHINGaft/whoops | false",
"/foo/all.{the}.things | /foo/all.bar.things | true",
"/foo/all.{the}.things | /foo/no/all.bar.things | false",
"/foo/all.{the}.*/** | /foo/all..bar.aa/ee/oo | true",
"/foo/all.{the}.*/** | /foo/all..bar. | true",
"/foo/**/bar/** | /foo/it/bar/stuff/whee | true",
"/foo/**/bar/** | /foo/it/barwhoops/it | true",
"/foo/**/bar/**/whee | /foo/it/bar/stuff/whee | true",
"/foo/**/bar/**baz** | /foo/it/bar/1baz2 | true",
"/foo/**/bar/**baz** | /foo/it/bar/baz2 | true",
"/foo/**/bar/**baz** | /foo/it/bar/1baz | true",
"/foo/**/bar/**baz** | /foo/it/bar/blegh | true"
}, splitBy = "\\|")
public void matchStart_method_works_as_expected_for_known_data(String pattern, String path, boolean expectedMatchValue) {
assertThat(matcher.matchStart(pattern, path), is(expectedMatchValue));
}