X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fwordcount%2Fcounter%2FTestData.java;h=40ef09ea094e97966432268942510f784771ccfa;hb=7efbc8c73e3f2bb1f553a61325b8576886bab254;hp=f795e7765f6dba7e69ce24b01ddf81c0c8873660;hpb=f9106e5166ce84caa2a910aa21fb41efaebcc73f;p=demos%2Fkafka%2Fwordcount diff --git a/src/test/java/de/juplo/kafka/wordcount/counter/TestData.java b/src/test/java/de/juplo/kafka/wordcount/counter/TestData.java index f795e77..40ef09e 100644 --- a/src/test/java/de/juplo/kafka/wordcount/counter/TestData.java +++ b/src/test/java/de/juplo/kafka/wordcount/counter/TestData.java @@ -1,105 +1,90 @@ package de.juplo.kafka.wordcount.counter; -import java.util.List; -import java.util.function.BiConsumer; +import de.juplo.kafka.wordcount.splitter.TestInputWord; +import de.juplo.kafka.wordcount.top10.TestOutputWord; +import de.juplo.kafka.wordcount.top10.TestOutputWordCounter; +import org.apache.kafka.streams.KeyValue; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; + +import java.util.stream.Stream; import static org.assertj.core.api.Assertions.assertThat; class TestData { - static void writeInputData(BiConsumer consumer) + private static final TestInputWord[] INPUT_MESSAGES = new TestInputWord[] + { + TestInputWord.of("peter","Hallo"), + TestInputWord.of("klaus","Müsch"), + TestInputWord.of("peter","Welt"), + TestInputWord.of("klaus","Müsch"), + TestInputWord.of("klaus","s"), + TestInputWord.of("peter","Boäh"), + TestInputWord.of("peter","Welt"), + TestInputWord.of("peter","Boäh"), + TestInputWord.of("klaus","s"), + TestInputWord.of("peter","Boäh"), + TestInputWord.of("klaus","s"), + }; + + static Stream getInputMessages() { - consumer.accept( - "peter", - Word.of("peter","Hallo")); - consumer.accept( - "klaus", - Word.of("klaus","Müsch")); - consumer.accept( - "peter", - Word.of("peter","Welt")); - consumer.accept( - "klaus", - Word.of("klaus","Müsch")); - consumer.accept( - "klaus", - Word.of("klaus","s")); - consumer.accept( - "peter", - Word.of("peter","Boäh")); - consumer.accept( - "peter", - Word.of("peter","Welt")); - consumer.accept( - "peter", - Word.of("peter","Boäh")); - consumer.accept( - "klaus", - Word.of("klaus","s")); - consumer.accept( - "peter", - Word.of("peter","Boäh")); - consumer.accept( - "klaus", - Word.of("klaus","s")); + return Stream.of(TestData.INPUT_MESSAGES); } - static void assertExpectedResult(List receivedMessages) + static void assertExpectedMessages(MultiValueMap 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 + expectedMessages().forEach( + (word, counter) -> + assertThat(receivedMessages.get(word)) + .containsExactlyElementsOf(counter)); } - static Message[] expectedMessages = + private static final KeyValue[] EXPECTED_MESSAGES = new KeyValue[] { - 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}"), + KeyValue.pair( + TestOutputWord.of("peter","Hallo"), + TestOutputWordCounter.of("peter","Hallo",1)), + KeyValue.pair( + TestOutputWord.of("klaus","Müsch"), + TestOutputWordCounter.of("klaus","Müsch",1)), + KeyValue.pair( + TestOutputWord.of("peter","Welt"), + TestOutputWordCounter.of("peter","Welt",1)), + KeyValue.pair( + TestOutputWord.of("klaus","Müsch"), + TestOutputWordCounter.of("klaus","Müsch",2)), + KeyValue.pair( + TestOutputWord.of("klaus","s"), + TestOutputWordCounter.of("klaus","s",1)), + KeyValue.pair( + TestOutputWord.of("peter","Boäh"), + TestOutputWordCounter.of("peter","Boäh",1)), + KeyValue.pair( + TestOutputWord.of("peter","Welt"), + TestOutputWordCounter.of("peter","Welt",2)), + KeyValue.pair( + TestOutputWord.of("peter","Boäh"), + TestOutputWordCounter.of("peter","Boäh",2)), + KeyValue.pair( + TestOutputWord.of("klaus","s"), + TestOutputWordCounter.of("klaus","s",2)), + KeyValue.pair( + TestOutputWord.of("peter","Boäh"), + TestOutputWordCounter.of("peter","Boäh",3)), + KeyValue.pair( + TestOutputWord.of("klaus","s"), + TestOutputWordCounter.of("klaus","s",3)), }; + + static MultiValueMap expectedMessages() + { + MultiValueMap expectedMessages = new LinkedMultiValueMap<>(); + Stream + .of(EXPECTED_MESSAGES) + .forEach(keyValue -> expectedMessages.add(keyValue.key, keyValue.value)); + return expectedMessages; + } }