1b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot/*  Copyright (c) 2000-2006 hamcrest.org
2b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot */
3b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabotpackage org.junit.internal.matchers;
4b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot
5b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabotimport org.hamcrest.Factory;
6b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabotimport org.hamcrest.Matcher;
7b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot
8b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot/**
9b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot * Tests if the argument is a string that contains a substring.
10b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot */
11b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabotpublic class StringContains extends SubstringMatcher {
12b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot    public StringContains(String substring) {
13b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot        super(substring);
14b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot    }
15b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot
16b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot    @Override
17b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot	protected boolean evalSubstringOf(String s) {
18b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot        return s.indexOf(substring) >= 0;
19b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot    }
20b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot
21b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot    @Override
22b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot	protected String relationship() {
23b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot        return "containing";
24b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot    }
25b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot
26b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot    @Factory
27b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot    public static Matcher<String> containsString(String substring) {
28b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot        return new StringContains(substring);
29b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot    }
30b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot
31b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot}