public void testValidationErrorDataFactoryConnectorReadDelegate()

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


  public void testValidationErrorDataFactoryConnectorReadDelegate() {
    dataFactoryMockServer.addStubMapping(
        stubFor(get(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"))
            .willReturn(aResponse().withStatus(422)
                .withBody("{\"traceId\":\"traceId1\",\"code\":\"VALIDATION_ERROR\","
                    + "\"message\":\"Validation error\","
                    + "\"details\":{\"errors\":[{\"field\":\"field1\",\"value\":\"value1\","
                    + "\"message\":\"message1\"}]}}"))));

    var ex = assertThrows(ValidationException.class, () -> runtimeService
        .startProcessInstanceByKey("testDataFactoryConnectorReadDelegate_key"));

    assertThat(ex).isNotNull();
    assertThat(ex.getTraceId()).isEqualTo("traceId1");
    assertThat(ex.getCode()).isEqualTo("VALIDATION_ERROR");
    assertThat(ex.getMessage()).isEqualTo("Validation error");
    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");
  }