package java8.chapter_01.exercises;
import java.io.File;
import org.hamcrest.Description;
import org.hamcrest.Matcher;
import org.hamcrest.Matchers;
import org.hamcrest.TypeSafeMatcher;
class FileTypeSafeMatcher extends TypeSafeMatcher<File> {
public static FileTypeSafeMatcher fileNamed(String name) {
return new FileTypeSafeMatcher(Matchers.equalTo(name));
}
private final Matcher<String> name;
private FileTypeSafeMatcher(Matcher<String> name) {
this.name = name;
}
@Override
protected boolean matchesSafely(File item) {
return name.matches(item.getName());
}
@Override
public void describeTo(Description description) {
name.describeTo(description);
}
@Override
protected void describeMismatchSafely(File item, Description mismatchDescription) {
mismatchDescription.appendText("file name ");
name.describeMismatch(item.getName(), mismatchDescription);
}
}