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, 22 Mar 2024 16:39:20 +0000 (17:39 +0100)
commitc0797810e3222618e6d7be31beba34fc52c009ed
tree8c97365c95050900c2c72c3f060c0e0f930d0f41
parent87a77e767631ee10fc29638fb52a39b38c4bc5e9
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