001 /* Copyright (c) 2000-2006 hamcrest.org
002 */
003 package org.hamcrest.core;
004
005 import org.hamcrest.Factory;
006 import org.hamcrest.Matcher;
007
008 /**
009 * Tests if the argument is a string that contains a substring.
010 */
011 public class StringContains extends SubstringMatcher {
012 public StringContains(String substring) {
013 super(substring);
014 }
015
016 @Override
017 protected boolean evalSubstringOf(String s) {
018 return s.indexOf(substring) >= 0;
019 }
020
021 @Override
022 protected String relationship() {
023 return "containing";
024 }
025
026 /**
027 * Creates a matcher that matches if the examined {@link String} contains the specified
028 * {@link String} anywhere.
029 * <p/>
030 * For example:
031 * <pre>assertThat("myStringOfNote", containsString("ring"))</pre>
032 *
033 * @param substring
034 * the substring that the returned matcher will expect to find within any examined string
035 *
036 */
037 @Factory
038 public static Matcher<String> containsString(String substring) {
039 return new StringContains(substring);
040 }
041
042 }