Skip to content

Commit d25f617

Browse files
committed
Merge pull request hamcrest#108 from ghostd/string-contains-in-order-repeated-pattern
Fix StringContainsInOrder to detect if a repeated pattern is missing
2 parents cafc6a2 + 83f85ad commit d25f617

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

hamcrest-library/src/main/java/org/hamcrest/text/StringContainsInOrder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public boolean matchesSafely(String s) {
2222
if (fromIndex == -1) {
2323
return false;
2424
}
25+
fromIndex++;
2526
}
2627

2728
return true;

hamcrest-library/src/test/java/org/hamcrest/text/StringContainsInOrderTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,25 @@
77

88

99
public class StringContainsInOrderTest extends AbstractMatcherTest {
10-
StringContainsInOrder m = new StringContainsInOrder(asList("a", "b", "c"));
10+
StringContainsInOrder m = new StringContainsInOrder(asList("a", "b", "c", "c"));
1111

1212
@Override
1313
protected Matcher<?> createMatcher() {
1414
return m;
1515
}
1616

1717
public void testMatchesOnlyIfStringContainsGivenSubstringsInTheSameOrder() {
18-
assertMatches("substrings in order", m, "abc");
19-
assertMatches("substrings separated", m, "1a2b3c4");
18+
assertMatches("substrings in order", m, "abcc");
19+
assertMatches("substrings separated", m, "1a2b3c4c5");
2020

21+
assertDoesNotMatch("substrings in order missing a repeated pattern", m, "abc");
2122
assertDoesNotMatch("substrings out of order", m, "cab");
2223
assertDoesNotMatch("no substrings in string", m, "xyz");
2324
assertDoesNotMatch("substring missing", m, "ac");
2425
assertDoesNotMatch("empty string", m, "");
2526
}
2627

2728
public void testHasAReadableDescription() {
28-
assertDescription("a string containing \"a\", \"b\", \"c\" in order", m);
29+
assertDescription("a string containing \"a\", \"b\", \"c\", \"c\" in order", m);
2930
}
3031
}

0 commit comments

Comments
 (0)