Assume I want to unit test a method with this signature:
List<MyItem> getMyItems();
Assume MyItem
is a Pojo that has many properties, one of which is "name"
, accessed via getName()
.
All I care about verifying is that the List<MyItem>
, or any Iterable
, contains two MyItem
instances, whose "name"
properties have the values "foo"
and "bar"
. If any other properties don't match, I don't really care for the purposes of this test. If the names match, it's a successful test.
I would like it to be one-liner if possible. Here is some "pseudo-syntax" of the kind of thing I would like to do.
assert(listEntriesMatchInAnyOrder(myClass.getMyItems(), property("name"), new String[]{"foo", "bar"});
Would Hamcrest be good for this type of thing? If so, what exactly would be the hamcrest version of my pseudo-syntax above?
containsInAnyOrder
(from same parent class) instead :) – Hexavalent