public Map<String, Parameter> getAllParams(
      Step stepDefinition, WorkflowSummary workflowSummary, StepRuntimeSummary runtimeSummary) {
    return paramsManager.generateMergedStepParams(
        workflowSummary, stepDefinition, getStepRuntime(stepDefinition.getType()), runtimeSummary);
  }
@Test
  public void testMergeNestedStringMap() {
    when(this.defaultParamManager.getDefaultStepParams())
        .thenReturn(
            ImmutableMap.of(
                "nested-default-new",
                StringMapParamDefinition.builder()
                    .name("nested-default-new")
                    .value(singletonMap("default-new", "from-default"))
                    .build(),
                "nested-common",
                StringMapParamDefinition.builder()
                    .name("nested-common")
                    .value(
                        twoItemMap(
                            "default-param", "from-default",
                            "common-param", "from-default"))
                    .build(),
                "foo",
                ParamDefinition.buildParamDefinition("foo", "some-default"),
                "test-param",
                ParamDefinition.buildParamDefinition("test-param", "some-other-default")));
    TypedStep testStep = new TypedStep();
    testStep.setParams(
        ImmutableMap.of(
            "nested-step-new",
            StringMapParamDefinition.builder()
                .name("nested-step-new")
                .value(singletonMap("step-new", "from-step"))
                .build(),
            "nested-common",
            StringMapParamDefinition.builder()
                .name("nested-common")
                .value(
                    twoItemMap(
                        "step-param", "from-step",
                        "common-param", "from-step"))
                .build(),
            "foo",
            ParamDefinition.buildParamDefinition("foo", "bar"),
            "test-param",
            ParamDefinition.buildParamDefinition("test-param", "hello")));
    testStep.setType(StepType.NOOP);
    testStep.setId("step1");
    Map<String, Parameter> params =
        runtimeManager.getAllParams(testStep, workflowSummary, runtimeSummary);
    assertEquals("bar", params.get("foo").getValue());
    assertEquals("hello", params.get("test-param").getValue());
    assertEquals(
        "from-step", params.get("nested-step-new").asStringMapParam().getValue().get("step-new"));
    assertEquals(
        "from-default",
        params.get("nested-default-new").asStringMapParam().getValue().get("default-new"));
    assertEquals(
        "from-default",
        params.get("nested-common").asStringMapParam().getValue().get("default-param"));
    assertEquals(
        "from-step", params.get("nested-common").asStringMapParam().getValue().get("step-param"));
    assertEquals(
        "from-step", params.get("nested-common").asStringMapParam().getValue().get("common-param"));
  }