X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fwordcount%2Fcounter%2FTestData.java;fp=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fwordcount%2Fcounter%2FTestData.java;h=4b5482b8172f81e5adf7e90dc36cf8395b5c2f92;hb=0a7e20af38fe1502c7c4328b2b6024cfe9e7b019;hp=0000000000000000000000000000000000000000;hpb=f8f9b6397ba0096bffa463e09a2db93277a3f9cf;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 new file mode 100644 index 0000000..4b5482b --- /dev/null +++ b/src/test/java/de/juplo/kafka/wordcount/counter/TestData.java @@ -0,0 +1,109 @@ +package de.juplo.kafka.wordcount.counter; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; + +import java.util.List; +import java.util.function.BiConsumer; + +import static org.assertj.core.api.Assertions.assertThat; + + +class TestData +{ + static void writeInputData(BiConsumer consumer) + { + consumer.accept( + "peter", + "Hallo"); + consumer.accept( + "klaus", + "Müsch"); + consumer.accept( + "peter", + "Welt"); + consumer.accept( + "klaus", + "Müsch"); + consumer.accept( + "klaus", + "s"); + consumer.accept( + "peter", + "Boäh"); + consumer.accept( + "peter", + "Welt"); + consumer.accept( + "peter", + "Boäh"); + consumer.accept( + "klaus", + "s"); + consumer.accept( + "peter", + "Boäh"); + consumer.accept( + "klaus", + "s"); + } + + static void assertExpectedResult(List receivedMessages, ObjectMapper mapper) + { + MultiValueMap received = new LinkedMultiValueMap<>(); + + receivedMessages.forEach(message -> + { + try + { + Key key = mapper.readValue(message.getKey(), Key.class); + received.add(key.getUsername(), message); + } + catch (JsonProcessingException e) + { + throw new RuntimeException(e); + } + }); + + assertThat(received).hasSize(2); + assertThat(received.get("klaus")).containsExactly(klaus1, klaus2, klaus3, klaus4, klaus5); + assertThat(received.get("peter")).containsExactly(peter1, peter2, peter3, peter4, peter5, peter6); + } + + static Message peter1 = Message.of( + "{\"username\":\"peter\",\"word\":\"Hallo\"}", + "1"); + static Message peter2 = Message.of( + "{\"username\":\"peter\",\"word\":\"Welt\"}", + "1"); + static Message peter3 = Message.of( + "{\"username\":\"peter\",\"word\":\"Boäh\"}", + "1"); + static Message peter4 = Message.of( + "{\"username\":\"peter\",\"word\":\"Welt\"}", + "2"); + static Message peter5 = Message.of( + "{\"username\":\"peter\",\"word\":\"Boäh\"}", + "2"); + static Message peter6 = Message.of( + "{\"username\":\"peter\",\"word\":\"Boäh\"}", + "3"); + + static Message klaus1 = Message.of( + "{\"username\":\"klaus\",\"word\":\"Müsch\"}", + "1"); + static Message klaus2 = Message.of( + "{\"username\":\"klaus\",\"word\":\"Müsch\"}", + "2"); + static Message klaus3 = Message.of( + "{\"username\":\"klaus\",\"word\":\"s\"}", + "1"); + static Message klaus4 = Message.of( + "{\"username\":\"klaus\",\"word\":\"s\"}", + "2"); + static Message klaus5 = Message.of( + "{\"username\":\"klaus\",\"word\":\"s\"}", + "3"); +}