public void parseStepParameter(
      Map<String, Map<String, Object>> allStepOutputData,
      Map<String, Parameter> workflowParams,
      Map<String, Parameter> stepParams,
      Parameter param,
      String stepId) {
    parseStepParameter(
        allStepOutputData, workflowParams, stepParams, param, stepId, new HashSet<>());
  }
@Test
  public void testParseLiteralStepParameter() {
    StringParameter bar = StringParameter.builder().name("bar").value("test ${foo}").build();
    paramEvaluator.parseStepParameter(
        Collections.emptyMap(),
        Collections.emptyMap(),
        Collections.singletonMap("foo", StringParameter.builder().value("123").build()),
        bar,
        "step1");
    assertEquals("test 123", bar.getEvaluatedResult());

    bar = StringParameter.builder().name("bar").value("test ${foo}").build();
    paramEvaluator.parseStepParameter(
        Collections.emptyMap(),
        Collections.emptyMap(),
        Collections.singletonMap(
            "foo", StringParameter.builder().evaluatedResult("123").evaluatedTime(123L).build()),
        bar,
        "step1");
    assertEquals("test 123", bar.getEvaluatedResult());
  }