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