import java.time.Clock;
import java.util.stream.IntStream;
-
public class ShardedChatHomeTest extends ChatHomeWithShardsTestBase
{
@TestConfiguration
{
@Bean
ShardedChatHome chatHome(
- Integer numShards,
- int[] ownedShards,
InMemoryChatHomeService chatHomeService)
{
- SimpleChatHome[] chatHomes = new SimpleChatHome[numShards];
+ SimpleChatHome[] chatHomes = new SimpleChatHome[NUM_SHARDS];
IntStream
- .of(ownedShards)
+ .of(ownedShards())
.forEach(shard -> chatHomes[shard] = new SimpleChatHome(chatHomeService, shard));
- ShardingStrategy strategy = new KafkaLikeShardingStrategy(numShards);
+ ShardingStrategy strategy = new KafkaLikeShardingStrategy(NUM_SHARDS);
return new ShardedChatHome(chatHomes, strategy);
}
@Bean
InMemoryChatHomeService chatHomeService(
- Integer numShards,
- int[] ownedShards,
StorageStrategy storageStrategy)
{
return new InMemoryChatHomeService(
- numShards,
- ownedShards,
+ NUM_SHARDS,
+ ownedShards(),
storageStrategy.read());
}
@Bean
- public FilesStorageStrategy storageStrategy(Integer numShards)
+ public FilesStorageStrategy storageStrategy()
{
return new FilesStorageStrategy(
Paths.get("target", "test-classes", "data", "files"),
Clock.systemDefaultZone(),
8,
- new KafkaLikeShardingStrategy(numShards),
+ new KafkaLikeShardingStrategy(NUM_SHARDS),
messageFlux -> new InMemoryChatRoomService(messageFlux),
new ObjectMapper());
}
- @Bean
- Integer numShards()
- {
- return 10;
- }
-
- @Bean
int[] ownedShards()
{
- return new int[] { 2 };
+ return new int[] { OWNED_SHARD };
}
}
}