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);
}