X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fwordcount%2Fcounter%2FTestData.java;h=c9d871ac962dcdbe73082ea064e68b5a3b30caed;hb=1127988a1b631aa9e0c0107c1a3ed9f99edd188b;hp=40ef09ea094e97966432268942510f784771ccfa;hpb=7efbc8c73e3f2bb1f553a61325b8576886bab254;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 40ef09e..c9d871a 100644 --- a/src/test/java/de/juplo/kafka/wordcount/counter/TestData.java +++ b/src/test/java/de/juplo/kafka/wordcount/counter/TestData.java @@ -7,6 +7,7 @@ import org.apache.kafka.streams.KeyValue; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; +import java.util.function.Consumer; import java.util.stream.Stream; import static org.assertj.core.api.Assertions.assertThat; @@ -14,26 +15,68 @@ import static org.assertj.core.api.Assertions.assertThat; class TestData { - private static final TestInputWord[] INPUT_MESSAGES = new TestInputWord[] + static final String PETER = "peter"; + static final String KLAUS = "klaus"; + + static final String WORD_HALLO = "Hallo"; + static final String WORD_MÜSCH = "Müsch"; + static final String WORD_WELT = "Welt"; + static final String WORD_S = "s"; + static final String WORD_BOÄH = "Boäh"; + + static final TestOutputWord PETER_HALLO = TestOutputWord.of(PETER, WORD_HALLO); + static final TestOutputWord PETER_WELT = TestOutputWord.of(PETER, WORD_WELT); + static final TestOutputWord PETER_BOÄH = TestOutputWord.of(PETER, WORD_BOÄH); + static final TestOutputWord KLAUS_MÜSCH = TestOutputWord.of(KLAUS, WORD_MÜSCH); + static final TestOutputWord KLAUS_S = TestOutputWord.of(KLAUS, WORD_S); + + private static final KeyValue[] INPUT_MESSAGES = new KeyValue[] { - 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"), + new KeyValue<>( + PETER, + TestInputWord.of(PETER, WORD_HALLO)), + new KeyValue<>( + KLAUS, + TestInputWord.of(KLAUS, WORD_MÜSCH)), + new KeyValue<>( + PETER, + TestInputWord.of(PETER, WORD_WELT)), + new KeyValue<>( + KLAUS, + TestInputWord.of(KLAUS, WORD_MÜSCH)), + new KeyValue<>( + KLAUS, + TestInputWord.of(KLAUS, WORD_S)), + new KeyValue<>( + PETER, + TestInputWord.of(PETER, WORD_BOÄH)), + new KeyValue<>( + PETER, + TestInputWord.of(PETER, WORD_WELT)), + new KeyValue<>( + PETER, + TestInputWord.of(PETER, WORD_BOÄH)), + new KeyValue<>( + KLAUS, + TestInputWord.of(KLAUS, WORD_S)), + new KeyValue<>( + PETER, + TestInputWord.of(PETER, WORD_BOÄH)), + new KeyValue<>( + KLAUS, + TestInputWord.of(KLAUS, WORD_S)), }; - static Stream getInputMessages() + static Stream> getInputMessages() { return Stream.of(TestData.INPUT_MESSAGES); } + static Consumer> expectedMessagesAssertion() + { + return receivedMessages -> assertExpectedMessages(receivedMessages); + } + static void assertExpectedMessages(MultiValueMap receivedMessages) { expectedMessages().forEach( @@ -42,41 +85,60 @@ class TestData .containsExactlyElementsOf(counter)); } + static Consumer> expectedNumberOfMessagesForWordAssertion() + { + return receivedMessages -> assertExpectedNumberOfMessagesForWord(receivedMessages); + } + + static void assertExpectedNumberOfMessagesForWord(MultiValueMap receivedMessages) + { + assertThat(countMessagesForWord(PETER_HALLO, receivedMessages)); + assertThat(countMessagesForWord(PETER_WELT, receivedMessages)); + assertThat(countMessagesForWord(PETER_BOÄH, receivedMessages)); + assertThat(countMessagesForWord(KLAUS_MÜSCH, receivedMessages)); + assertThat(countMessagesForWord(KLAUS_S, receivedMessages)); + } + + private static int countMessagesForWord(TestOutputWord word, MultiValueMap messagesForUsers) + { + return messagesForUsers.get(word).size(); + } + private static final KeyValue[] EXPECTED_MESSAGES = new KeyValue[] { KeyValue.pair( - TestOutputWord.of("peter","Hallo"), - TestOutputWordCounter.of("peter","Hallo",1)), + PETER_HALLO, + TestOutputWordCounter.of(PETER, WORD_HALLO,1)), KeyValue.pair( - TestOutputWord.of("klaus","Müsch"), - TestOutputWordCounter.of("klaus","Müsch",1)), + KLAUS_MÜSCH, + TestOutputWordCounter.of(KLAUS, WORD_MÜSCH,1)), KeyValue.pair( - TestOutputWord.of("peter","Welt"), - TestOutputWordCounter.of("peter","Welt",1)), + PETER_WELT, + TestOutputWordCounter.of(PETER, WORD_WELT,1)), KeyValue.pair( - TestOutputWord.of("klaus","Müsch"), - TestOutputWordCounter.of("klaus","Müsch",2)), + KLAUS_MÜSCH, + TestOutputWordCounter.of(KLAUS, WORD_MÜSCH,2)), KeyValue.pair( - TestOutputWord.of("klaus","s"), - TestOutputWordCounter.of("klaus","s",1)), + KLAUS_S, + TestOutputWordCounter.of(KLAUS, WORD_S,1)), KeyValue.pair( - TestOutputWord.of("peter","Boäh"), - TestOutputWordCounter.of("peter","Boäh",1)), + PETER_BOÄH, + TestOutputWordCounter.of(PETER, WORD_BOÄH,1)), KeyValue.pair( - TestOutputWord.of("peter","Welt"), - TestOutputWordCounter.of("peter","Welt",2)), + PETER_WELT, + TestOutputWordCounter.of(PETER, WORD_WELT,2)), KeyValue.pair( - TestOutputWord.of("peter","Boäh"), - TestOutputWordCounter.of("peter","Boäh",2)), + PETER_BOÄH, + TestOutputWordCounter.of(PETER, WORD_BOÄH,2)), KeyValue.pair( - TestOutputWord.of("klaus","s"), - TestOutputWordCounter.of("klaus","s",2)), + KLAUS_S, + TestOutputWordCounter.of(KLAUS, WORD_S,2)), KeyValue.pair( - TestOutputWord.of("peter","Boäh"), - TestOutputWordCounter.of("peter","Boäh",3)), + PETER_BOÄH, + TestOutputWordCounter.of(PETER, WORD_BOÄH,3)), KeyValue.pair( - TestOutputWord.of("klaus","s"), - TestOutputWordCounter.of("klaus","s",3)), + KLAUS_S, + TestOutputWordCounter.of(KLAUS, WORD_S,3)), }; static MultiValueMap expectedMessages()