From 1afdac7eb6ea92c3e15c22b9033670bc0211b599 Mon Sep 17 00:00:00 2001
From: Jukka Karvanen <48978068+jukkakarvanen@users.noreply.github.com>
Date: Tue, 9 Apr 2019 14:08:27 +0300
Subject: [PATCH] Kafka Streams unit test demonstration in Spring Cloud Stream
kafka-streams-test-utils added TopologyTestDriver, Note now kafka.version need to be kept in sync manually
Reduce unnecessary logging
Extract contants to be used in test class
Changed non used key type from Object to Bytes to use BytesSerde
Added default contructor to support JsonSerde
Added toString for better test output
KafkaStreamsWordCountApplication.WordCountProcessorApplication using TopologyTestDriver
Unified intentation
Bytes as key type
Polishing
---
.../kafka-streams-word-count/pom.xml | 6 +
.../KafkaStreamsWordCountApplication.java | 28 ++-
.../src/main/resources/logback.xml | 12 ++
...KafkaStreamsWordCountApplicationTests.java | 7 +-
.../WordCountProcessorApplicationTests.java | 162 ++++++++++++++++++
5 files changed, 207 insertions(+), 8 deletions(-)
create mode 100644 kafka-streams-samples/kafka-streams-word-count/src/main/resources/logback.xml
create mode 100644 kafka-streams-samples/kafka-streams-word-count/src/test/java/kafka/streams/word/count/WordCountProcessorApplicationTests.java
diff --git a/kafka-streams-samples/kafka-streams-word-count/pom.xml b/kafka-streams-samples/kafka-streams-word-count/pom.xml
index 60992fd..8899666 100644
--- a/kafka-streams-samples/kafka-streams-word-count/pom.xml
+++ b/kafka-streams-samples/kafka-streams-word-count/pom.xml
@@ -36,6 +36,12 @@
spring-kafka-test
test
+
+ org.apache.kafka
+ kafka-streams-test-utils
+ ${kafka.version}
+ test
+
diff --git a/kafka-streams-samples/kafka-streams-word-count/src/main/java/kafka/streams/word/count/KafkaStreamsWordCountApplication.java b/kafka-streams-samples/kafka-streams-word-count/src/main/java/kafka/streams/word/count/KafkaStreamsWordCountApplication.java
index 58162d3..9c96c31 100644
--- a/kafka-streams-samples/kafka-streams-word-count/src/main/java/kafka/streams/word/count/KafkaStreamsWordCountApplication.java
+++ b/kafka-streams-samples/kafka-streams-word-count/src/main/java/kafka/streams/word/count/KafkaStreamsWordCountApplication.java
@@ -17,6 +17,7 @@
package kafka.streams.word.count;
import org.apache.kafka.common.serialization.Serdes;
+import org.apache.kafka.common.utils.Bytes;
import org.apache.kafka.streams.KeyValue;
import org.apache.kafka.streams.kstream.KStream;
import org.apache.kafka.streams.kstream.Materialized;
@@ -42,15 +43,19 @@ public class KafkaStreamsWordCountApplication {
@EnableBinding(KafkaStreamsProcessor.class)
public static class WordCountProcessorApplication {
- @StreamListener("input")
- @SendTo("output")
- public KStream, WordCount> process(KStream