ResponseBody: как определить формат координат и т п?

rest-assured
java
Теги: #<Tag:0x00007f7b627627f0> #<Tag:0x00007f7b627624d0>

(Arina) #1

Доброе время суток

приходит response body в формате:

"someField": [
            "11.61730006425781|22.96571112143555",
            "33.5123444015625|44.06633349926758"
],
body("someField", isIn(Arrays.asList("11.61730006425781|22.96571112143555")));

такого формата и прочие из org.hamcrest.Matchers не подходят, чтобы определить, что ответ верный.

можно ли как-то определить, что координаты нужного формата? или есть другие варианты убедится, что данные валидны?


(Павел) #2

Используйте AssertJ, там миллион ассертов на любой вкус:

import static java.util.Arrays.asList;
import java.util.List;
import org.assertj.core.api.Assertions;
..
        String requiredPattern = "^\\d{2}\\.\\d{13,14}\\|\\d{2}\\.\\d{13,14}$";
        List<String> coordinates = asList(
            "11.61730006425781|22.96571112143555",
            "33.5123444015625|44.06633349926758",
            "123.456");
        Assertions.assertThat(coordinates).allMatch(coord -> coord.matches(requiredPattern));

и читабельный вывод как бонус:

Expecting all elements of:
  <["11.61730006425781|22.96571112143555",
    "33.5123444015625|44.06633349926758",
    "123.456"]>
to match given predicate but this element did not:
  <"123.456">

(Arina) #3

Спасибо! Интересный подход