void startProcessInstanceWithForm()

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


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

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

    var payload = "{\"data\":{\"formData\":\"testData\"},"
        + "\"signature\":\"eSign\","
        + "\"x-access-token\":\"" + tokenConfig.getValueWithRoleOfficer() + "\"}";
    mockPutStartFormCephKey(payload);
    mockValidationFormData(200, payload);

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

    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 = performForObjectAsOfficer(request, StartProcessInstanceResponse.class);

    var expectedResponse = StartProcessInstanceResponse.builder()
        .id(processInstanceId)
        .processDefinitionId(processDefinitionId)
        .ended(false)
        .build();
    assertThat(result).isEqualTo(expectedResponse);
  }