public String summarize(final ExecutionStep<?> step) {
    return summarize(step, "").summary;
  }
@Test
  public void shouldSummarizePlanWithMultipleSources() {
    // Given:
    final LogicalSchema sourceSchema2 = LogicalSchema.builder()
        .keyColumn(SystemColumns.ROWKEY_NAME, SqlTypes.STRING)
        .valueColumn(ColumnName.of("L0_2"), SqlTypes.STRING)
        .build();

    final LogicalSchema schema = LogicalSchema.builder()
        .keyColumn(SystemColumns.ROWKEY_NAME, SqlTypes.STRING)
        .valueColumn(ColumnName.of("L1"), SqlTypes.STRING)
        .build();

    final ExecutionStep<?> sourceStep2 = givenStep(StreamSource.class, "src2", sourceSchema2);
    final ExecutionStep<?> step =
        givenStep(StreamStreamJoin.class, "child", schema, sourceStep, sourceStep2);

    // When:
    final String summary = planSummaryBuilder.summarize(step);

    // Then:
    assertThat(summary, is(
        " > [ JOIN ] | Schema: ROWKEY STRING KEY, L1 STRING | Logger: QID.child"
            + "\n\t\t > [ SOURCE ] | Schema: ROWKEY STRING KEY, L0 INTEGER | Logger: QID.src"
            + "\n\t\t > [ SOURCE ] | Schema: ROWKEY STRING KEY, L0_2 STRING | Logger: QID.src2\n"
    ));
  }