X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fwordcount%2Ftop10%2FTestData.java;h=a4f79ac72c882fee5a0a9e444f5f570dfe11e15c;hb=fa19058953b388f893255d2bcc9351ac9eb3328b;hp=d8c603ae1ba6c688376456b47702de0a91bb0b1c;hpb=e32a74e6a989ba8fc1061cffd1bed814edb4f72f;p=demos%2Fkafka%2Fwordcount diff --git a/src/test/java/de/juplo/kafka/wordcount/top10/TestData.java b/src/test/java/de/juplo/kafka/wordcount/top10/TestData.java index d8c603a..a4f79ac 100644 --- a/src/test/java/de/juplo/kafka/wordcount/top10/TestData.java +++ b/src/test/java/de/juplo/kafka/wordcount/top10/TestData.java @@ -69,8 +69,44 @@ class TestData static void assertExpectedState(ReadOnlyKeyValueStore store) { - assertThat(store.get(EXPECTED_MESSAGES[9].key)).isEqualTo(EXPECTED_MESSAGES[9].value); - assertThat(store.get(EXPECTED_MESSAGES[10].key)).isEqualTo(EXPECTED_MESSAGES[10].value); + assertRankingEqualsRankingFromLastMessage(PETER, store.get(PETER)); + assertRankingEqualsRankingFromLastMessage(KLAUS, store.get(KLAUS)); + } + + static void assertExpectedNumberOfMessagesForUsers(MultiValueMap receivedMessages) + { + assertThat(countMessagesForUser(PETER, receivedMessages)); + assertThat(countMessagesForUser(KLAUS, receivedMessages)); + } + + static int countMessagesForUser(User user, MultiValueMap messagesForUsers) + { + return messagesForUsers.get(user).size(); + } + + + static void assertExpectedLastMessagesForUsers(MultiValueMap receivedMessages) + { + assertRankingEqualsRankingFromLastMessage(PETER, getLastMessageFor(PETER, receivedMessages)); + assertRankingEqualsRankingFromLastMessage(KLAUS, getLastMessageFor(KLAUS, receivedMessages)); + } + + static void assertRankingEqualsRankingFromLastMessage(User user, Ranking ranking) + { + assertThat(ranking).isEqualTo(getLastMessageFor(user)); + } + + static Ranking getLastMessageFor(User user) + { + return getLastMessageFor(user, expectedMessages()); + } + + static Ranking getLastMessageFor(User user, MultiValueMap messagesForUsers) + { + return messagesForUsers + .get(user) + .stream() + .reduce(null, (left, right) -> right); } static KeyValue[] EXPECTED_MESSAGES = new KeyValue[]