showuon commented on a change in pull request #11124: URL: https://github.com/apache/kafka/pull/11124#discussion_r678905114
########## File path: streams/src/test/java/org/apache/kafka/streams/kstream/internals/KStreamSlidingWindowAggregateTest.java ########## @@ -100,17 +99,79 @@ private final Properties props = StreamsTestUtils.getStreamsConfig(Serdes.String(), Serdes.String()); private final String threadId = Thread.currentThread().getName(); + private final String topic = "topic"; + private final String defaultInOrderName = "InOrder"; + private final String defaultReverseName = "Reverse"; + private final long defaultWindowSize = 10L; + private final long defaultRetentionPeriod = 5000L; + + private WindowBytesStoreSupplier getStoreSupplier(final boolean inOrderIterator, + final String inOrderName, + final String reverseName, + final long windowSize) { + return inOrderIterator + ? new InOrderMemoryWindowStoreSupplier(inOrderName, defaultRetentionPeriod, windowSize, false) + : Stores.inMemoryWindowStore(reverseName, ofMillis(defaultRetentionPeriod), ofMillis(windowSize), false); + } + + @SuppressWarnings("unchecked") + @Test + public void testAggregateSmallInputWithZeroTimeDifference() { + final StreamsBuilder builder = new StreamsBuilder(); + + // We use CachingWindowStore to store the aggregated values internally, and then use TimeWindow to represent the "windowed KTable" + // thus, the window size must be greater than 0 here + final WindowBytesStoreSupplier storeSupplier = getStoreSupplier(inOrderIterator, defaultInOrderName, defaultReverseName, 1L); + + // we should support the "zero" time difference since sliding window is both start and end time inclusive + final KTable<Windowed<String>, String> table = builder + .stream(topic, Consumed.with(Serdes.String(), Serdes.String())) + .groupByKey(Grouped.with(Serdes.String(), Serdes.String())) + .windowedBy(SlidingWindows.withTimeDifferenceAndGrace(ofMillis(0), ofMillis(50))) + .aggregate( Review comment: After this PR, we can create a window size 0 aggregation. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org