private void processValue()

in src/main/java/platform/qa/officer/pages/TaskPage.java [318:334]


    private void processValue(TestContext testContext, FieldData fieldData) {
        var context = convertToRequestsContext(testContext.getScenarioContext().getContext(API_RESULTS));
        var randomValueMap = convertToRandomMapContext(testContext.getScenarioContext().getContext(RANDOM_VALUE_MAP));
        String valueKey = substringBetween(fieldData.getValue(), "{", "}");
        if (fieldData.getValue().startsWith("{")
                && fieldData.getValue().endsWith("}")
                && randomValueMap.containsKey(valueKey)) {
            fieldData.setValue(randomValueMap.get(valueKey));
        } else if (fieldData.getValue().startsWith("{")
                && fieldData.getValue().endsWith("}")
                && context.stream().anyMatch(request -> request.isResultContainsKey(valueKey))) {
            var lastRequest = context.stream()
                    .filter(request -> request.isResultContainsKey(valueKey))
                    .max(Request::compareTo);
            lastRequest.ifPresent(request -> fieldData.setValue(request.getResultValueByKey(valueKey)));
        }
    }