void testInMemHistoryHandler()

in ddm-bpm-history-event-handler/src/it/java/com/epam/digital/data/platform/bpm/history/it/ProcessHistoryEventPublisherIT.java [116:168]


  void testInMemHistoryHandler() {
    identityService.setAuthentication("testUser", List.of("camunda-admin"));

    var process = runtimeService.startProcessInstanceByKey("test_history_handler",
        "1", Map.of("initiator", "testUser"));

    var task = taskService.createTaskQuery()
        .processInstanceId(process.getProcessInstanceId())
        .singleResult();
    taskService.complete(task.getId());

    var processInstanceId = process.getId();
    var processDefinitionId = process.getProcessDefinitionId();

    await().atMost(10, TimeUnit.SECONDS).pollDelay(100, TimeUnit.MILLISECONDS).untilAsserted(() -> {
      assertThat(storage.getProcessInstanceDtoMap()).hasSize(1);
      var actualProcessInstance = storage.getHistoryProcessInstanceDto(processInstanceId);
      assertThat(actualProcessInstance)
          .hasNoNullFieldsOrPropertiesExcept("superProcessInstanceId")
          .hasFieldOrPropertyWithValue("processInstanceId", processInstanceId)
          .hasFieldOrPropertyWithValue("superProcessInstanceId", null)
          .hasFieldOrPropertyWithValue("processDefinitionId", processDefinitionId)
          .hasFieldOrPropertyWithValue("processDefinitionKey", "test_history_handler")
          .hasFieldOrPropertyWithValue("processDefinitionName", "test_history_handler")
          .hasFieldOrPropertyWithValue("businessKey", "1")
          .hasFieldOrProperty("startTime")
          .hasFieldOrProperty("endTime")
          .hasFieldOrPropertyWithValue("startUserId", "testUser")
          .hasFieldOrPropertyWithValue("state", "COMPLETED")
          .hasFieldOrPropertyWithValue("excerptId", "excerpt")
          .hasFieldOrPropertyWithValue("completionResult", "completion result");

      assertThat(storage.getHistoryTaskDtoMap()).hasSize(1);
      var actualTask = storage.getHistoryTaskDtoMap().values().stream()
          .filter(t -> "user_task".equals(t.getTaskDefinitionKey())).findFirst();
      assertThat(actualTask).isPresent().get()
          .hasNoNullFieldsOrProperties()
          .hasFieldOrProperty("activityInstanceId")
          .hasFieldOrPropertyWithValue("taskDefinitionKey", "user_task")
          .hasFieldOrPropertyWithValue("taskDefinitionName", "task")
          .hasFieldOrPropertyWithValue("processInstanceId", processInstanceId)
          .hasFieldOrPropertyWithValue("processDefinitionId", processDefinitionId)
          .hasFieldOrPropertyWithValue("processDefinitionKey", "test_history_handler")
          .hasFieldOrPropertyWithValue("processDefinitionName", "test_history_handler")
          .hasFieldOrPropertyWithValue("rootProcessInstanceId", processInstanceId)
          .hasFieldOrProperty("startTime")
          .hasFieldOrProperty("endTime")
          .hasFieldOrPropertyWithValue("assignee", "testUser");

      assertThat(historyService.createHistoricProcessInstanceQuery().list()).isEmpty();
      assertThat(historyService.createHistoricTaskInstanceQuery().list()).isEmpty();
    });
  }