import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
-import java.util.Map;
-import java.util.Properties;
-import java.util.stream.Collectors;
import java.util.stream.Stream;
import static org.assertj.core.api.Assertions.assertThat;
static void assertExpectedState(ReadOnlyKeyValueStore<User, Ranking> 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<User, Ranking> receivedMessages)
+ {
+ assertThat(countMessagesForUser(PETER, receivedMessages));
+ assertThat(countMessagesForUser(KLAUS, receivedMessages));
+ }
+
+ static int countMessagesForUser(User user, MultiValueMap<User, Ranking> messagesForUsers)
+ {
+ return messagesForUsers.get(user).size();
+ }
+
+
+ static void assertExpectedLastMessagesForUsers(MultiValueMap<User, Ranking> 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<User, Ranking> messagesForUsers)
+ {
+ return messagesForUsers
+ .get(user)
+ .stream()
+ .reduce(null, (left, right) -> right);
}
static KeyValue<User, Ranking>[] EXPECTED_MESSAGES = new KeyValue[]
return expectedMessages;
}
- static Map<String, Object> convertToMap(Properties properties)
- {
- return properties
- .entrySet()
- .stream()
- .collect(
- Collectors.toMap(
- entry -> (String)entry.getKey(),
- entry -> entry.getValue()
- ));
- }
-
static String parseHeader(Headers headers, String key)
{
Header header = headers.lastHeader(key);