@Override
    public <VR> KTable<Windowed<K>, VR> aggregate(final Initializer<VR> initializer,
                                                  final Aggregator<? super K, ? super V, VR> aggregator) {
        return aggregate(initializer, aggregator, Materialized.with(keySerde, null));
    }
@Test
    public void shouldThrowIllegalArgumentWhenRetentionIsTooSmall() {
        assertThrows(IllegalArgumentException.class, () -> windowedStream
            .aggregate(
                MockInitializer.STRING_INIT,
                MockAggregator.TOSTRING_ADDER,
                Materialized
                    .<String, String, WindowStore<Bytes, byte[]>>as("aggregated")
                    .withKeySerde(Serdes.String())
                    .withValueSerde(Serdes.String())
                    .withRetention(ofMillis(1L))
            )
        );
    }