1
package org.hamcrest.text;
3
import org.hamcrest.Description;
4
import org.hamcrest.Factory;
5
import org.hamcrest.Matcher;
6
import org.hamcrest.TypeSafeMatcher;
8
public class StringContainsInOrder extends TypeSafeMatcher<String> {
9
private final Iterable<String> substrings;
11
public StringContainsInOrder(Iterable<String> substrings) {
12
this.substrings = substrings;
16
public boolean matchesSafely(String s) {
19
for (String substring : substrings) {
20
fromIndex = s.indexOf(substring, fromIndex);
21
if (fromIndex == -1) {
30
public void describeMismatchSafely(String item, Description mismatchDescription) {
31
mismatchDescription.appendText("was \"").appendText(item).appendText("\"");
34
public void describeTo(Description description) {
35
description.appendText("a string containing ")
36
.appendValueList("", ", ", "", substrings)
37
.appendText(" in order");
41
public static Matcher<String> stringContainsInOrder(Iterable<String> substrings) {
42
return new StringContainsInOrder(substrings);