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 }