Suponha que eu queira testar a unidade de um método com esta assinatura:
List<MyItem> getMyItems();
Suponha que MyItemseja um Pojo que possui muitas propriedades, uma das quais é "name", acessada via getName().
Tudo que me importa é verificar se o List<MyItem>, ou qualquer Iterable, contém duas MyIteminstâncias, cujas "name"propriedades têm os valores "foo"e "bar". Se alguma outra propriedade não corresponder, realmente não me importo com os propósitos deste teste. Se os nomes corresponderem, o teste foi bem-sucedido.
Eu gostaria que fosse uma linha, se possível. Aqui está alguma "pseudo-sintaxe" do tipo de coisa que eu gostaria de fazer.
assert(listEntriesMatchInAnyOrder(myClass.getMyItems(), property("name"), new String[]{"foo", "bar"});
Hamcrest seria bom para esse tipo de coisa? Em caso afirmativo, qual seria exatamente a versão hamcrest da minha pseudo-sintaxe acima?