Предположим, что я хочу unit test метод с этой сигнатурой:
List<MyItem> getMyItems();
Предположим, что MyItem - это Pojo, обладающее многими свойствами, один из которых "name", доступ через getName().
Все, что мне нужно для проверки, состоит в том, что List<MyItem> или любой Iterable содержит два экземпляра MyItem, чьи свойства "name" имеют значения "foo" и "bar". Если какие-либо другие свойства не совпадают, мне совершенно не нужны цели этого теста. Если имена совпадают, это успешный тест.
Я хотел бы, чтобы это было однострочным, если возможно. Вот какой-то "псевдо-синтаксис" того, что я хотел бы сделать.
assert(listEntriesMatchInAnyOrder(myClass.getMyItems(), property("name"), new String[]{"foo", "bar"});
Может ли Хэмкрест быть хорошим для такого рода вещей? Если да, то какова будет именно версия hamcrest моего псевдосинтакса выше?