package com.softwaremill.common.test.util.fest;
import com.google.common.base.Optional;
import org.assertj.core.api.Condition;
import static com.google.common.base.Preconditions.checkArgument;
/**
* @author Maciej Bilas
* @since 13/9/12 12:07
*/
public class OptionalConditions {
private static final Condition<Object> PRESENT_CONDITION = new Condition<Object>() {
@SuppressWarnings("ConstantConditions")
@Override
public boolean matches(Object o) {
if (o == null)
return false;
checkArgument(o instanceof Optional);
return ((Optional<?>) o).isPresent();
}
};
private static final Condition<Object> ABSENT_CONDITION = new Condition<Object>() {
@SuppressWarnings("ConstantConditions")
@Override
public boolean matches(Object o) {
if (o == null)
return false;
checkArgument(o instanceof Optional);
return !((Optional) o).isPresent();
}
};
public static Condition<Object> present() {
return PRESENT_CONDITION;
}
public static Condition<Object> absent() {
return ABSENT_CONDITION;
}
}