У меня есть тест «Уверенный в себе», в котором я пытаюсь проверить, что даты в ответе находятся между датами, переданными в параметрах. Я пытаюсь использовать Hamcrest-Date, но даты, возвращенные в моем ответе json, находятся в yyyy-MM-dd и Hamcrest-Date, кажется, находятся в Day, Date Month Year. Я не могу использовать .format (DateTimeFormatter.BASIC_ISO_DATE) в утверждении тела, потому что DateTimeFormatter преобразует его в строку, а Hamcrest-Date, похоже, не поддерживает его. Как это может работать?
Это ошибка в коде:
"Метод sameOrBefore (Date) в типе DateMatchers не применим для аргументов (String)"
ValidatableResponse vr = given().
param("startDate", LocalDate.now().minusMonths(1).format(DateTimeFormatter.BASIC_ISO_DATE)).
param("endDate", LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE)).
pathParam("accountid", accountId_DP).
header("trace-id", UUID.randomUUID().toString()).
header("organization", ORGANIZATION).
header("session-id", SESSION_ID_734548).
when().
get("/transactions/{accountid}/pra").
then();
LOGGER.info("test prefix to find in console {}", vr.extract().response().getBody().asString());
vr.assertThat().statusCode(200).
and().contentType(ContentType.JSON).
and().
body("transactions.postedDate.toString()", everyItem(DateMatchers.sameOrBefore(LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE)))).
and().
extract().
response();
}