test: Fixed `AbstractConfigurationIT#testPutMessageInNewChatRoom()`
authorKai Moritz <kai@juplo.de>
Fri, 15 Mar 2024 15:04:38 +0000 (16:04 +0100)
committerKai Moritz <kai@juplo.de>
Fri, 15 Mar 2024 20:55:38 +0000 (21:55 +0100)
commitab1eee218b7944a848148ed4ba0272fea9f23780
treefd1e17fe1ab8e68197464872f368ce2bdbcad188
parent3bde6637da603741a317b63c5e5d06959d53c804
test: Fixed `AbstractConfigurationIT#testPutMessageInNewChatRoom()`

* In the case, that the request that adds a messag failed, the longly
  process of creating a new chat-room, until it has the correct shard,
  was unnecessarily repeated.
* Different workarounds have to be applied at the same time for the two
  implementations:
** Because `ShardedChatHomeService` only throws a `ShardNotOwnedException`,
   if the shard, that is picked by the strategy is not owned, the result
   is retried until the requests succeeds by chance.
** The `KafkaChatHomeService` always creates the chat-room in the
   partition, that is derived from the randomly picked id.
   Hence, the loop, that is only left, if the randomly picked partition
   matches the partition `2`, that the test-instance owns.
** Since `SimpleChatHomeService` does not know the concept of sharding
   at all, the loop is also left, if no shard is set (shard is ``null``).
src/test/java/de/juplo/kafka/chat/backend/AbstractConfigurationIT.java