4b5482b8172f81e5adf7e90dc36cf8395b5c2f92
[demos/kafka/wordcount] / src / test / java / de / juplo / kafka / wordcount / counter / TestData.java
1 package de.juplo.kafka.wordcount.counter;
2
3 import com.fasterxml.jackson.core.JsonProcessingException;
4 import com.fasterxml.jackson.databind.ObjectMapper;
5 import org.springframework.util.LinkedMultiValueMap;
6 import org.springframework.util.MultiValueMap;
7
8 import java.util.List;
9 import java.util.function.BiConsumer;
10
11 import static org.assertj.core.api.Assertions.assertThat;
12
13
14 class TestData
15 {
16         static void writeInputData(BiConsumer<String, String> consumer)
17         {
18                 consumer.accept(
19                                 "peter",
20                                 "Hallo");
21                 consumer.accept(
22                                 "klaus",
23                                 "Müsch");
24                 consumer.accept(
25                                 "peter",
26                                 "Welt");
27                 consumer.accept(
28                                 "klaus",
29                                 "Müsch");
30                 consumer.accept(
31                                 "klaus",
32                                 "s");
33                 consumer.accept(
34                                 "peter",
35                                 "Boäh");
36                 consumer.accept(
37                                 "peter",
38                                 "Welt");
39                 consumer.accept(
40                                 "peter",
41                                 "Boäh");
42                 consumer.accept(
43                                 "klaus",
44                                 "s");
45                 consumer.accept(
46                                 "peter",
47                                 "Boäh");
48                 consumer.accept(
49                                 "klaus",
50                                 "s");
51         }
52
53         static void assertExpectedResult(List<Message> receivedMessages, ObjectMapper mapper)
54         {
55                 MultiValueMap<String, Message> received = new LinkedMultiValueMap<>();
56
57                 receivedMessages.forEach(message ->
58                 {
59                         try
60                         {
61                                 Key key = mapper.readValue(message.getKey(), Key.class);
62                                 received.add(key.getUsername(), message);
63                         }
64                         catch (JsonProcessingException e)
65                         {
66                                 throw new RuntimeException(e);
67                         }
68                 });
69
70                 assertThat(received).hasSize(2);
71                 assertThat(received.get("klaus")).containsExactly(klaus1, klaus2, klaus3, klaus4, klaus5);
72                 assertThat(received.get("peter")).containsExactly(peter1, peter2, peter3, peter4, peter5, peter6);
73         }
74
75         static Message peter1 = Message.of(
76                         "{\"username\":\"peter\",\"word\":\"Hallo\"}",
77                         "1");
78         static Message peter2 = Message.of(
79                         "{\"username\":\"peter\",\"word\":\"Welt\"}",
80                         "1");
81         static Message peter3 = Message.of(
82                         "{\"username\":\"peter\",\"word\":\"Boäh\"}",
83                         "1");
84         static Message peter4 = Message.of(
85                         "{\"username\":\"peter\",\"word\":\"Welt\"}",
86                         "2");
87         static Message peter5 = Message.of(
88                         "{\"username\":\"peter\",\"word\":\"Boäh\"}",
89                         "2");
90         static Message peter6 = Message.of(
91                         "{\"username\":\"peter\",\"word\":\"Boäh\"}",
92                         "3");
93
94         static Message klaus1 = Message.of(
95                         "{\"username\":\"klaus\",\"word\":\"Müsch\"}",
96                         "1");
97         static Message klaus2 = Message.of(
98                         "{\"username\":\"klaus\",\"word\":\"Müsch\"}",
99                         "2");
100         static Message klaus3 = Message.of(
101                         "{\"username\":\"klaus\",\"word\":\"s\"}",
102                         "1");
103         static Message klaus4 = Message.of(
104                         "{\"username\":\"klaus\",\"word\":\"s\"}",
105                         "2");
106         static Message klaus5 = Message.of(
107                         "{\"username\":\"klaus\",\"word\":\"s\"}",
108                         "3");
109 }