public void verifyDataModelReturnJsonFromFileWithData()

in src/main/java/platform/qa/steps/DataModelStepDefinitions.java [104:128]


    public void verifyDataModelReturnJsonFromFileWithData(String path, String jsonFilePath, String sortingFieldName) {
        var context = convertToRequestsContext(testContext.getScenarioContext().getContext(API_RESULTS));
        var actualResult = getLastRequest(context, path).getResults();

        List<String> actualSortingFieldValues = new ArrayList<>();
        for (Map map : actualResult)
            actualSortingFieldValues.add(map.get(sortingFieldName).toString());

        List<String> sortedActualSortingFieldValues = new ArrayList<>(actualSortingFieldValues);
        sortedActualSortingFieldValues.sort((o1, o2) -> {
            o1 = Pattern.compile("[^\\w\\x{0400}-\\x{04FF}]+").matcher(o1.toLowerCase()).replaceAll("");
            o2 = Pattern.compile("[^\\w\\x{0400}-\\x{04FF}]+").matcher(o2.toLowerCase()).replaceAll("");
            return Collator.getInstance(new Locale("uk", "UA")).compare(o1, o2);
        });

        Assertions.assertThat(sortedActualSortingFieldValues).as("Дані невірно відсортовані")
                .isEqualTo(actualSortingFieldValues);

        String filePath = getFilePath(jsonFilePath);
        String jsonFileName = getFileNameFromPath(jsonFilePath);
        String expectedJsonText = CustomFileUtils.readFromFile(filePath, jsonFileName);

        assertThatJson(actualResult).as("Дані не співпадають:")
                .when(IGNORING_EXTRA_FIELDS, IGNORING_ARRAY_ORDER).isEqualTo(expectedJsonText);
    }