public void validateAndMergeOutputParams(StepRuntimeSummary runtimeSummary) {
    Optional<String> externalJobId = extractExternalJobId(runtimeSummary);
    if (externalJobId.isPresent()) {
      Optional<OutputData> outputDataOpt =
          outputDataDao.getOutputDataForExternalJob(externalJobId.get(), ExternalJobType.TITUS);
      outputDataOpt.ifPresent(
          outputData -> {
            ParamsMergeHelper.mergeOutputDataParams(
                runtimeSummary.getParams(), outputData.getParams());
          });
    }
  }
@Test
  public void testValidOutputParameters() {
    Map<String, Parameter> runtimeParams = new HashMap<>();
    runtimeParams.put(
        "str_param",
        StringParameter.builder()
            .name("str_param")
            .value("v1")
            .evaluatedResult("v1")
            .mode(ParamMode.MUTABLE)
            .evaluatedTime(System.currentTimeMillis())
            .build());
    setupOutputDataDao();
    runtimeSummary = runtimeSummaryBuilder().artifacts(artifacts).params(runtimeParams).build();
    outputDataManager.validateAndMergeOutputParams(runtimeSummary);
    assertEquals("hello", runtimeSummary.getParams().get("str_param").asString());
  }