Hamcrest: сравните две пользовательских коллекции объектов класса - PullRequest
0 голосов
/ 23 октября 2018

У меня есть две Collection<Audit> коллекции:

Collection<Audit> pendingAudits;
Collection<Audit> olderAudits;

Итак, мне нужно сравнить все pendingAudits элементы в olderAudits.

Чтобы сравнить их,необходимо сравнить, что каждый audit.getId().equals(other.getId()).

Пожалуйста, имейте ввиду, что я не могу переопределить Audit.equals или Audit.hashCode.Это сторонний класс.

Я думаю, мне нужно создать собственный встроенный Matcher.

Есть идеи?

1 Ответ

0 голосов
/ 24 октября 2018

Если вы хотите попробовать assertj, вы можете воспользоваться его пользовательской стратегией сравнения

@Test
void myTest() {
    Collection<Audit> pendingAudits = ...
    Collection<Audit> olderAudits = ...

    Comparator<Audit> byId = Comparator.comparing(Audit::getId);
    assertThat(olderAudits).usingElementComparator(byId).containsAll(pendingAudits);
}
...