public void testMatchesOnlyIfStringContainsGivenSubstringsInTheSameOrder() {
assertMatches("substrings in order", matcher, "abcc");
assertMatches("substrings separated", matcher, "1a2b3c4c5");
assertDoesNotMatch("can detect repeated strings for matching", stringContainsInOrder("abc", "abc"), "---abc---");
assertDoesNotMatch("substrings in order missing a repeated pattern", matcher, "abc");
assertDoesNotMatch("substrings out of order", matcher, "cab");
assertDoesNotMatch("no substrings in string", matcher, "xyz");
assertDoesNotMatch("substring missing", matcher, "ac");
assertDoesNotMatch("empty string", matcher, "");
}