package ru.yandex.qatools.allure.utils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.NameFileFilter;
import org.apache.commons.io.filefilter.TrueFileFilter;
import org.hamcrest.Description;
import org.hamcrest.Matcher;
import org.hamcrest.TypeSafeMatcher;
import java.io.File;
import static org.hamcrest.CoreMatchers.not;
/**
* @author Dmitry Baev charlie@yandex-team.ru
* Date: 04.05.14
*/
public class DirectoryMatcher {
public static class Contains extends TypeSafeMatcher<File> {
private String fileName;
public Contains(String fileName) {
this.fileName = fileName;
}
@Override
protected boolean matchesSafely(File directory) {
return directory.isDirectory() && !FileUtils.listFiles(
directory,
new NameFileFilter(fileName),
TrueFileFilter.INSTANCE
).isEmpty();
}
@Override
public void describeTo(Description description) {
description.appendText("contains file ").appendValue(fileName);
}
}
public static Matcher contains(String fileName) {
return new Contains(fileName);
}
public static Matcher notContains(String fileName) {
return not(contains(fileName));
}
}