public LogicalSchema resolve(final ExecutionStep<?> step, final LogicalSchema schema) {
    return Optional.ofNullable(HANDLERS.get(step.getClass()))
        .map(h -> h.handle(this, schema, step))
        .orElseThrow(() -> new IllegalStateException("Unhandled step class: " + step.getClass()));
  }
@Test
  public void shouldResolveSchemaForStreamWindowedSource() {
    final WindowedStreamSource step = new WindowedStreamSource(
        PROPERTIES,
        "foo",
        formats,
        WindowInfo.of(WindowType.TUMBLING, Optional.of(Duration.ofMillis(123)), Optional.empty()),
        Optional.empty(),
        SCHEMA,
        OptionalInt.of(SystemColumns.CURRENT_PSEUDOCOLUMN_VERSION_NUMBER)
    );

    // When:
    final LogicalSchema result = resolver.resolve(step, SCHEMA);

    // Then:
    assertThat(result, is(SCHEMA.withPseudoAndKeyColsInValue(true)));
  }