package de.otto.edison.testsupport.matcher;
import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;
import org.hamcrest.Matcher;
import java.util.Optional;
public class OptionalMatchers {
public static Matcher<? super Optional<?>> isPresent() {
return new BaseMatcher<Optional<?>>() {
@Override
public boolean matches(Object item) {
return Optional.class.isAssignableFrom(item.getClass())
&& ((Optional)item).isPresent();
}
@Override
public void describeTo(Description description) {
description.appendText("Optional should be present");
}
};
}
public static Matcher<? super Optional<?>> isAbsent() {
return new BaseMatcher<Optional<?>>() {
@Override
public boolean matches(Object item) {
return Optional.class.isAssignableFrom(item.getClass())
&& !((Optional)item).isPresent();
}
@Override
public void describeTo(Description description) {
description.appendText("Optional should be absent");
}
};
}
}