JSONПодтвердить, что элемент списка имеет допустимое поле (регулярное выражение) - PullRequest
0 голосов
/ 08 января 2019

Я бы хотел убедиться, что ответ содержит следующие элементы с действительными датами:

[
    {"id":"ID-1","created":"2019-01-08T12:46:08.508+01:00"},
    {"id":"ID-2","created":"2019-01-08T12:46:08.554+01:00"},
    {"id":"ID-3","created":"2019-01-08T12:46:08.565+01:00"},
    {"id":"ID-4","created":"2019-01-08T12:46:08.565+01:00"}
]

Я проверил id следующее выражение

String expected = "[{id:ID-1},{id:ID-2},{id:ID-3},{id:ID-4}]";

Но я не могу выполнить задачу проверки правильности дат: Я пробовал что-то вроде:

JSONAssert.assertEquals(
        expected,
        actual,
        new CustomComparator(
                JSONCompareMode.STRICT,
                new Customization("[0].created", new RegularExpressionValueMatcher<Object>(ISO8601_REGEX)),
                new Customization("[1].created", new RegularExpressionValueMatcher<Object>(ISO8601_REGEX)),
                new Customization("[2].created", new RegularExpressionValueMatcher<Object>(ISO8601_REGEX)),
                new Customization("[3].created", new RegularExpressionValueMatcher<Object>(ISO8601_REGEX))
        )
);

Следующее сообщение об ошибке является результатом (которого я не понимаю):

java.lang.AssertionError: [0]
Unexpected: created
 ; [1]
Unexpected: created
 ; [2]
Unexpected: created
 ; [3]
Unexpected: created
at org.skyscreamer.jsonassert.JSONAssert.assertEquals(JSONAssert.java:482)
at org.skyscreamer.jsonassert.JSONAssert.assertEquals(JSONAssert.java:464)
<snip: here the statement with JSONAssert... starts>
...