Я хотел бы проверить, что список содержит подсписок другого списка. Вот фиктивный пример того, как я это делаю сейчас:
@Test
public void testExtracting() throws Exception {
final List<User> users = new ArrayList<>();
users.add(new User(5234, "Adam"));
users.add(new User(4635, "David"));
final List<User> newUsers = new ArrayList<>();
newUsers.add(new User(6143, "Bob"));
newUsers.add(new User(3465, "Cindy"));
users.addAll(newUsers);
assertThat(users).extracting("id").contains(newUsers.get(0).id, newUsers.get(1).id);
}
public static class User {
public long id;
public String name;
public User(int id, String name) {
this.id = id;
this.name = name;
}
}
Можно ли добиться того же результата более компактным способом, не переопределяя метод equals
класса User
? Я ищу что-то вроде:
assertThat(users).contains(newUsers.get(0), newUsers.get(1)).extracting("id");
Или еще лучше:
assertThat(users).contains(newUsers.subList(0, 2)).extracting("id");