package org.testory.testing;
import static java.lang.String.format;
import static java.util.Objects.deepEquals;
import java.util.Arrays;
public class DynamicMatchers {
public static Object same(final Object expected) {
return new Object() {
@SuppressWarnings("unused")
public boolean matches(Object item) {
return item == expected;
}
public String toString() {
return format("same(%s)", expected);
}
};
}
public static Object deepEqual(final Object object) {
return new Object() {
@SuppressWarnings("unused")
public boolean matches(Object item) {
return deepEquals(object, item);
}
public String toString() {
return format("deepEqual(%s)", object);
}
};
}
public static Object number(final Integer... numbers) {
return new Object() {
@SuppressWarnings("unused")
public boolean matches(Object item) {
return Arrays.asList(numbers).contains(item);
}
public String toString() {
return format("number(%s)", Arrays.toString(numbers));
}
};
}
}