WIP
[demos/kafka/wordcount] / src / test / java / de / juplo / kafka / wordcount / top10 / TestData.java
diff --git a/src/test/java/de/juplo/kafka/wordcount/top10/TestData.java b/src/test/java/de/juplo/kafka/wordcount/top10/TestData.java
new file mode 100644 (file)
index 0000000..dd7ad33
--- /dev/null
@@ -0,0 +1,105 @@
+package de.juplo.kafka.wordcount.top10;
+
+import java.util.List;
+import java.util.function.BiConsumer;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+
+class TestData
+{
+       static void writeInputData(BiConsumer<String, String> consumer)
+       {
+               consumer.accept(
+                               "peter",
+                               "{\"user\":\"peter\",\"word\":\"Hallo\"}");
+               consumer.accept(
+                               "klaus",
+                               "{\"user\":\"klaus\",\"word\":\"Müsch\"}");
+               consumer.accept(
+                               "peter",
+                               "{\"user\":\"peter\",\"word\":\"Welt\"}");
+               consumer.accept(
+                               "klaus",
+                               "{\"user\":\"klaus\",\"word\":\"Müsch\"}");
+               consumer.accept(
+                               "klaus",
+                               "{\"user\":\"klaus\",\"word\":\"s\"}");
+               consumer.accept(
+                               "peter",
+                               "{\"user\":\"peter\",\"word\":\"Boäh\"}");
+               consumer.accept(
+                               "peter",
+                               "{\"user\":\"peter\",\"word\":\"Welt\"}");
+               consumer.accept(
+                               "peter",
+                               "{\"user\":\"peter\",\"word\":\"Boäh\"}");
+               consumer.accept(
+                               "klaus",
+                               "{\"user\":\"klaus\",\"word\":\"s\"}");
+               consumer.accept(
+                               "peter",
+                               "{\"user\":\"peter\",\"word\":\"Boäh\"}");
+               consumer.accept(
+                               "klaus",
+                               "{\"user\":\"klaus\",\"word\":\"s\"}");
+       }
+
+       static void assertExpectedResult(List<Message> receivedMessages)
+       {
+               assertThat(receivedMessages).hasSize(11);
+               assertThat(receivedMessages).containsSubsequence(
+                               expectedMessages[0]); // Hallo
+               assertThat(receivedMessages).containsSubsequence(
+                               expectedMessages[1],
+                               expectedMessages[3]); // Müsch
+               assertThat(receivedMessages).containsSubsequence(
+                               expectedMessages[2],
+                               expectedMessages[6]);
+               assertThat(receivedMessages).containsSubsequence(
+                               expectedMessages[4],
+                               expectedMessages[8],
+                               expectedMessages[10]); // s
+               assertThat(receivedMessages).containsSubsequence(
+                               expectedMessages[5],
+                               expectedMessages[7],
+                               expectedMessages[9]); // Boäh
+       }
+
+       static Message[] expectedMessages =
+       {
+                       Message.of(
+                                       "{\"user\":\"peter\",\"word\":\"Hallo\"}",
+                                       "{\"user\":\"peter\",\"word\":\"Hallo\",\"count\":1}"),
+                       Message.of(
+                                       "{\"user\":\"klaus\",\"word\":\"Müsch\"}",
+                                       "{\"user\":\"klaus\",\"word\":\"Müsch\",\"count\":1}"),
+                       Message.of(
+                                       "{\"user\":\"peter\",\"word\":\"Welt\"}",
+                                       "{\"user\":\"peter\",\"word\":\"Welt\",\"count\":1}"),
+                       Message.of(
+                                       "{\"user\":\"klaus\",\"word\":\"Müsch\"}",
+                                       "{\"user\":\"klaus\",\"word\":\"Müsch\",\"count\":2}"),
+                       Message.of(
+                                       "{\"user\":\"klaus\",\"word\":\"s\"}",
+                                       "{\"user\":\"klaus\",\"word\":\"s\",\"count\":1}"),
+                       Message.of(
+                                       "{\"user\":\"peter\",\"word\":\"Boäh\"}",
+                                       "{\"user\":\"peter\",\"word\":\"Boäh\",\"count\":1}"),
+                       Message.of(
+                                       "{\"user\":\"peter\",\"word\":\"Welt\"}",
+                                       "{\"user\":\"peter\",\"word\":\"Welt\",\"count\":2}"),
+                       Message.of(
+                                       "{\"user\":\"peter\",\"word\":\"Boäh\"}",
+                                       "{\"user\":\"peter\",\"word\":\"Boäh\",\"count\":2}"),
+                       Message.of(
+                                       "{\"user\":\"klaus\",\"word\":\"s\"}",
+                                       "{\"user\":\"klaus\",\"word\":\"s\",\"count\":2}"),
+                       Message.of(
+                                       "{\"user\":\"peter\",\"word\":\"Boäh\"}",
+                                       "{\"user\":\"peter\",\"word\":\"Boäh\",\"count\":3}"),
+                       Message.of(
+                                       "{\"user\":\"klaus\",\"word\":\"s\"}",
+                                       "{\"user\":\"klaus\",\"word\":\"s\",\"count\":3}"),
+       };
+}