package de.juplo.kafka.wordcount.counter;
+import de.juplo.kafka.wordcount.splitter.TestInputUser;
import de.juplo.kafka.wordcount.splitter.TestInputWord;
import de.juplo.kafka.wordcount.top10.TestOutputWord;
import de.juplo.kafka.wordcount.top10.TestOutputWordCounter;
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;
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<String, TestInputWord>[] INPUT_MESSAGES = new KeyValue[]
+ private static final KeyValue<TestInputUser, TestInputWord>[] INPUT_MESSAGES = new KeyValue[]
{
new KeyValue<>(
- PETER,
+ TestInputUser.of(PETER),
TestInputWord.of(PETER, WORD_HALLO)),
new KeyValue<>(
- KLAUS,
+ TestInputUser.of(KLAUS),
TestInputWord.of(KLAUS, WORD_MÜSCH)),
new KeyValue<>(
- PETER,
+ TestInputUser.of(PETER),
TestInputWord.of(PETER, WORD_WELT)),
new KeyValue<>(
- KLAUS,
+ TestInputUser.of(KLAUS),
TestInputWord.of(KLAUS, WORD_MÜSCH)),
new KeyValue<>(
- KLAUS,
+ TestInputUser.of(KLAUS),
TestInputWord.of(KLAUS, WORD_S)),
new KeyValue<>(
- PETER,
+ TestInputUser.of(PETER),
TestInputWord.of(PETER, WORD_BOÄH)),
new KeyValue<>(
- PETER,
+ TestInputUser.of(PETER),
TestInputWord.of(PETER, WORD_WELT)),
new KeyValue<>(
- PETER,
+ TestInputUser.of(PETER),
TestInputWord.of(PETER, WORD_BOÄH)),
new KeyValue<>(
- KLAUS,
+ TestInputUser.of(KLAUS),
TestInputWord.of(KLAUS, WORD_S)),
new KeyValue<>(
- PETER,
+ TestInputUser.of(PETER),
TestInputWord.of(PETER, WORD_BOÄH)),
new KeyValue<>(
- KLAUS,
+ TestInputUser.of(KLAUS),
TestInputWord.of(KLAUS, WORD_S)),
};
- static Stream<KeyValue<String, TestInputWord>> getInputMessages()
+ static Stream<KeyValue<TestInputUser, TestInputWord>> getInputMessages()
{
return Stream.of(TestData.INPUT_MESSAGES);
}
- static Consumer<MultiValueMap<TestOutputWord, TestOutputWordCounter>> expectedMessagesAssertion()
- {
- return receivedMessages -> assertExpectedMessages(receivedMessages);
- }
-
static void assertExpectedMessages(MultiValueMap<TestOutputWord, TestOutputWordCounter> receivedMessages)
{
expectedMessages().forEach(
.containsExactlyElementsOf(counter));
}
- static Consumer<MultiValueMap<TestOutputWord, TestOutputWordCounter>> expectedNumberOfMessagesForWordAssertion()
- {
- return receivedMessages -> assertExpectedNumberOfMessagesForWord(receivedMessages);
- }
-
static void assertExpectedNumberOfMessagesForWord(MultiValueMap<TestOutputWord, TestOutputWordCounter> receivedMessages)
{
assertThat(countMessagesForWord(PETER_HALLO, receivedMessages));
private static int countMessagesForWord(TestOutputWord word, MultiValueMap<TestOutputWord, TestOutputWordCounter> messagesForUsers)
{
- return messagesForUsers.get(word).size();
- }
-
- static Consumer<MultiValueMap<TestOutputWord, TestOutputWordCounter>> expectedLastMessagesForWordAssertion()
- {
- return receivedMessages -> assertExpectedLastMessagesForWord(receivedMessages);
+ return messagesForUsers.get(word) == null
+ ? 0
+ : messagesForUsers.get(word).size();
}
static void assertExpectedState(ReadOnlyKeyValueStore<Word, Long> store)