public <K> KTableHolder<K> build(
      final KTableHolder<K> table,
      final TableSuppress<K> step,
      final RuntimeBuildContext buildContext,
      final ExecutionKeyFactory<K> executionKeyFactory
  ) {
    return build(
        table,
        step,
        buildContext,
        executionKeyFactory,
        PhysicalSchema::from,
        buildContext.getMaterializedFactory()
    );
  }
@Test
  @SuppressWarnings({"unchecked", "rawtypes"})
  public void shouldSuppressSourceTable() {
    // When:
    final KTableHolder<Struct> result = builder.build(
        tableHolder,
        tableSuppress,
        buildContext,
        executionKeyFactory,
        physicalSchemaFactory,
        new MaterializedFactory()
    );

    // Then:
    assertThat(result, is(suppressedtable));
    verify(sourceKTable).transformValues(any(),any(Materialized.class));
    verify(preKTable).suppress(suppressionCaptor.capture());
    final FinalResultsSuppressionBuilder suppression = suppressionCaptor.getValue();
    assertThat(suppression, isA(FinalResultsSuppressionBuilder.class));
  }