Quiero probar si un campo específico de un objeto coincide con un valor que especifico. En este caso, es el nombre del cubo dentro de un objeto S3Bucket. Por lo que yo puedo decir, tengo que escribir un matcher personalizado para esto:¿Hay una manera simple de emparejar un campo usando Hamcrest?
mockery.checking(new Expectations() {{
one(query.s3).getObject(with(
new BaseMatcher<S3Bucket>() {
@Override
public boolean matches(Object item) {
if (item instanceof S3Bucket) {
return ((S3Bucket)item).getName().equals("bucket");
} else {
return false;
}
}
@Override
public void describeTo(Description description) {
description.appendText("Bucket name isn't \"bucket\"");
}
}), with(equal("key")));
...
}});
Sería bueno si hubiera una manera más sencilla de hacer esto, algo como:
mockery.checking(new Expectations() {{
one(query.s3).getObject(
with(equal(methodOf(S3Bucket.class).getName(), "bucket")),
with(equal("key")));
...
}});
Puede alguien señalarme algo así? Supongo que ya resolví mi problema en este caso, pero esta no es la primera vez que lo he deseado de una manera más simple.