X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fwordcount%2Fcounter%2FTestData.java;h=777537ba4d3411c9efc366aa5a569eb6ddc969c9;hb=44f1ad5dcd50851ef5d93b1be759481d5a38f63a;hp=c1dd45a333d052dee558c97fb00669ceafcd79eb;hpb=15f12279802c23601b648c631d044c3c77f40902;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 c1dd45a..777537b 100644 --- a/src/test/java/de/juplo/kafka/wordcount/counter/TestData.java +++ b/src/test/java/de/juplo/kafka/wordcount/counter/TestData.java @@ -1,122 +1,115 @@ package de.juplo.kafka.wordcount.counter; +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.List; -import java.util.Map; -import java.util.Properties; -import java.util.function.BiConsumer; -import java.util.stream.Collectors; +import java.util.stream.Stream; import static org.assertj.core.api.Assertions.assertThat; class TestData { - static void writeInputData(BiConsumer consumer) + static final String PETER = "peter"; + static final String KLAUS = "klaus"; + + private static final KeyValue[] INPUT_MESSAGES = new KeyValue[] + { + new KeyValue<>( + PETER, + TestInputWord.of(PETER, "Hallo")), + new KeyValue<>( + KLAUS, + TestInputWord.of(KLAUS, "Müsch")), + new KeyValue<>( + PETER, + TestInputWord.of(PETER, "Welt")), + new KeyValue<>( + KLAUS, + TestInputWord.of(KLAUS, "Müsch")), + new KeyValue<>( + KLAUS, + TestInputWord.of(KLAUS, "s")), + new KeyValue<>( + PETER, + TestInputWord.of(PETER, "Boäh")), + new KeyValue<>( + PETER, + TestInputWord.of(PETER, "Welt")), + new KeyValue<>( + PETER, + TestInputWord.of(PETER, "Boäh")), + new KeyValue<>( + KLAUS, + TestInputWord.of(KLAUS, "s")), + new KeyValue<>( + PETER, + TestInputWord.of(PETER, "Boäh")), + new KeyValue<>( + KLAUS, + 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 KeyValue[] expectedMessages = new KeyValue[] + private static final KeyValue[] EXPECTED_MESSAGES = new KeyValue[] { KeyValue.pair( - Word.of("peter","Hallo"), - WordCount.of("peter","Hallo",1)), + TestOutputWord.of(PETER, "Hallo"), + TestOutputWordCounter.of(PETER, "Hallo",1)), KeyValue.pair( - Word.of("klaus","Müsch"), - WordCount.of("klaus","Müsch",1)), + TestOutputWord.of(KLAUS, "Müsch"), + TestOutputWordCounter.of(KLAUS, "Müsch",1)), KeyValue.pair( - Word.of("peter","Welt"), - WordCount.of("peter","Welt",1)), + TestOutputWord.of(PETER, "Welt"), + TestOutputWordCounter.of(PETER, "Welt",1)), KeyValue.pair( - Word.of("klaus","Müsch"), - WordCount.of("klaus","Müsch",2)), + TestOutputWord.of(KLAUS, "Müsch"), + TestOutputWordCounter.of(KLAUS, "Müsch",2)), KeyValue.pair( - Word.of("klaus","s"), - WordCount.of("klaus","s",1)), + TestOutputWord.of(KLAUS, "s"), + TestOutputWordCounter.of(KLAUS, "s",1)), KeyValue.pair( - Word.of("peter","Boäh"), - WordCount.of("peter","Boäh",1)), + TestOutputWord.of(PETER, "Boäh"), + TestOutputWordCounter.of(PETER, "Boäh",1)), KeyValue.pair( - Word.of("peter","Welt"), - WordCount.of("peter","Welt",2)), + TestOutputWord.of(PETER, "Welt"), + TestOutputWordCounter.of(PETER, "Welt",2)), KeyValue.pair( - Word.of("peter","Boäh"), - WordCount.of("peter","Boäh",2)), + TestOutputWord.of(PETER, "Boäh"), + TestOutputWordCounter.of(PETER, "Boäh",2)), KeyValue.pair( - Word.of("klaus","s"), - WordCount.of("klaus","s",2)), + TestOutputWord.of(KLAUS, "s"), + TestOutputWordCounter.of(KLAUS, "s",2)), KeyValue.pair( - Word.of("peter","Boäh"), - WordCount.of("peter","Boäh",3)), + TestOutputWord.of(PETER, "Boäh"), + TestOutputWordCounter.of(PETER, "Boäh",3)), KeyValue.pair( - Word.of("klaus","s"), - WordCount.of("klaus","s",3)), + TestOutputWord.of(KLAUS, "s"), + TestOutputWordCounter.of(KLAUS, "s",3)), }; - static Map convertToMap(Properties properties) + static MultiValueMap expectedMessages() { - return properties - .entrySet() - .stream() - .collect( - Collectors.toMap( - entry -> (String)entry.getKey(), - entry -> entry.getValue() - )); + MultiValueMap expectedMessages = new LinkedMultiValueMap<>(); + Stream + .of(EXPECTED_MESSAGES) + .forEach(keyValue -> expectedMessages.add(keyValue.key, keyValue.value)); + return expectedMessages; } }