public void testDataFactoryConnectorUpdateDelegate()

in ddm-bpm-extension/src/it/java/com/epam/digital/data/platform/bpms/extension/it/DataFactoryConnectorDelegateIT.java [169:200]


  public void testDataFactoryConnectorUpdateDelegate() {
    formDataStorageService.putFormData("cephKey", FormDataDto.builder()
        .accessToken("token").build());

    dataFactoryMockServer.addStubMapping(
        stubFor(put(urlPathEqualTo("/mock-server/laboratory/id"))
            .withHeader("Content-Type", equalTo("application/json"))
            .withHeader("X-Source-System", equalTo("Low-code Platform"))
            .withHeader("X-Source-Application", equalTo("ddm-bpm-extension"))
            .withHeader("X-Digital-Signature-Derived", equalTo("cephKey"))
            .withRequestBody(equalTo("{\"var\":\"value\"}"))
            .willReturn(aResponse().withHeader("Content-Type", "application/json")
                .withStatus(422).withBody("{\"traceId\":\"traceId1\",\"code\":\"VALIDATION_ERROR\","
                    + "\"details\":{\"errors\":[{\"field\":\"field1\",\"value\":\"value1\","
                    + "\"message\":\"message1\"}]}}"))));

    Map<String, Object> variables = ImmutableMap
        .of("secure-sys-var-ref-task-form-data-testActivity", "cephKey");
    var ex = assertThrows(ValidationException.class, () -> runtimeService
        .startProcessInstanceByKey("testDataFactoryConnectorUpdateDelegate_key", variables));

    assertThat(ex).isNotNull();
    assertThat(ex.getTraceId()).isEqualTo("traceId1");
    assertThat(ex.getCode()).isEqualTo("VALIDATION_ERROR");
    assertThat(ex.getMessage()).isNull();
    assertThat(ex.getDetails()).isNotNull();
    assertThat(ex.getDetails().getErrors()).hasSize(1);
    assertThat(ex.getDetails().getErrors().get(0).getMessage())
        .isEqualTo("Значення змінної не відповідає правилам вказаним в домені");
    assertThat(ex.getDetails().getErrors().get(0).getField()).isEqualTo("field1");
    assertThat(ex.getDetails().getErrors().get(0).getValue()).isEqualTo("value1");
  }