1package org.hamcrest.object; 2 3import org.hamcrest.Description; 4import org.hamcrest.Matcher; 5import org.hamcrest.Factory; 6import org.hamcrest.BaseMatcher; 7 8public class HasToString<T> extends BaseMatcher<T> { 9 10 private final Matcher<String> toStringMatcher; 11 12 public HasToString(Matcher<String> toStringMatcher) { 13 this.toStringMatcher = toStringMatcher; 14 } 15 16 public boolean matches(Object item) { 17 return item != null && toStringMatcher.matches(item.toString()); 18 } 19 20 public void describeTo(Description description) { 21 description 22 .appendText("asString(") 23 .appendDescriptionOf(toStringMatcher) 24 .appendText(")"); 25 } 26 27 @Factory 28 public static <T> Matcher<T> hasToString(Matcher<String> toStringMatcher) { 29 return new HasToString<T>(toStringMatcher); 30 } 31} 32