public List<StepInstance> getAllStepInstances(
      String workflowId, long workflowInstanceId, long workflowRunId) {
    return getStepInstancesByIds(
        workflowId, workflowInstanceId, workflowRunId, null, this::maestroStepFromResult);
  }
@Test
  public void testGetAllStepInstances() {
    List<StepInstance> instances = stepDao.getAllStepInstances(TEST_WORKFLOW_ID, 1, 1);
    assertEquals(1, instances.size());
    StepInstance instance = instances.get(0);
    assertEquals(StepInstance.Status.RUNNING, instance.getRuntimeState().getStatus());
    assertFalse(instance.getSignalDependencies().isSatisfied());
    assertEquals(
        2,
        instance
            .getDefinition()
            .getOutputs()
            .get(StepOutputsDefinition.StepOutputType.SIGNAL)
            .asSignalOutputsDefinition()
            .getDefinitions()
            .size());
    assertTrue(instance.getArtifacts().isEmpty());
    assertTrue(instance.getTimeline().isEmpty());
    instance.setArtifacts(null);
    instance.setTimeline(null);
    Assertions.assertThat(instance).usingRecursiveComparison().isEqualTo(si);
  }