У меня есть несколько JSON
объектов в ответ, которые содержат определенный идентификатор в каждом из них.
{
"data": [{
"id": 1,
"status": {
"id": 0
}
},
{
"id": 2,
"status": {
"id": 0
}
},
{
"id": 3,
"status": {
"id": 0
}
}
]
}
Мне нужно проверить, что каждый data.status.id
имеет определенное значение:
then().
spec(basicResponse).
body("data.status.id", equalTo(0));
Но сопоставитель equalTo
сопоставляет ожидаемое значение со всем списком из найденных идентификаторов сразу. Не для каждого отдельного найденного идентификатора в отдельности.
java.lang.AssertionError: 1 expectation failed.
JSON path data.status.id doesn't match.
Expected: 0
Actual: [0, 0, 0]
Как я могу проверить его, не извлекая данные ответа в Список, а затем проверить его через foreach
или что-то подобное?
int statusNeeded = 0;
List<int> idsList = given().
get(Endpoints.GetCampaigns).
then().
extract().body().jsonPath().getList("data.status.id");
for (int statusId: idsList)
if(!statusNeeded.equals(statusId)) Assert.fail("Some id is not " + statusNeeded);