package gov.samhsa.consent2share.commonunit.matcher;
import java.util.function.Predicate;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.mockito.ArgumentMatcher;
public class ArgumentMatchers {
public static <T> ArgumentMatcher<T> matching(Predicate<T> matches) {
return new ArgumentMatcher<T>() {
@SuppressWarnings("unchecked")
@Override
public boolean matches(Object argument) {
final boolean match = matches.test((T) argument);
final StringBuilder builder = new StringBuilder();
builder.append("Match:");
builder.append(match);
builder.append("; Argument:");
builder.append(ReflectionToStringBuilder.toString(argument));
if (match) {
System.out.println(builder.toString());
} else {
System.err.println(builder.toString());
}
return match;
}
};
}
}