void failedStartProcessInstanceWithFormInvalidFormData()

in src/it/java/com/epam/digital/data/platform/usrprcssmgt/ProcessDefinitionManagementIT.java [219:256]


  void failedStartProcessInstanceWithFormInvalidFormData() {
    var processDefinitionId = "processInstanceId";
    var processDefinitionKey = "testKey";

    mockBpmsRequest(StubRequest.builder()
        .method(HttpMethod.GET)
        .path(urlEqualTo(
            String.format("/api/extended/process-definition/key/%s", processDefinitionKey)))
        .status(200)
        .responseBody(String.format(
            "{\"id\":\"%s\",\"name\":\"name1\",\"key\":\"testKey\",\"formKey\":\"formKey\"}",
            processDefinitionId))
        .responseHeaders(Map.of("Content-Type", List.of("application/json")))
        .build());

    var errorValidationResponse = "{\"details\":{\"errors\":[{\"value\": \"123\",\"field\": "
        + "\"name\",\"message\": \"Field name is required\"},{\"value\": \"321\",\"field\": "
        + "\"createdDate\",\"message\": \"Field createdDate is required\"}]}}";
    mockValidationFormData(422, errorValidationResponse);

    mockGetForm("{\"components\":[{\"key\":\"name\",\"type\":\"textfield\"},"
        + "{\"key\":\"createdDate\",\"type\":\"day\"}]}");

    var payload = "{\"data\":{\"formData\":\"testData\"},"
        + "\"signature\":\"eSign\","
        + "\"x-access-token\":\"" + tokenConfig.getValueWithRoleOfficer() + "\"}";
    var request =
        post(String.format("/api/process-definition/%s/start-with-form", processDefinitionKey))
            .accept(MediaType.APPLICATION_JSON_VALUE).contentType("application/json")
            .content(payload);

    var result = performForObjectAsOfficerAndExpect(request, ValidationErrorDto.class,
        status().is4xxClientError());

    assertThat(result.getDetails().getErrors()).hasSize(2);
    assertThat(result.getDetails().getErrors().get(0).getField()).isEqualTo("name");
    assertThat(result.getDetails().getErrors().get(1).getField()).isEqualTo("createdDate");
  }