X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fchat%2Fbackend%2Fimplementation%2Finmemory%2FShardedChatHomeServiceTest.java;h=95501ad97213af394f5b1b86a007a4f757efa6ad;hb=64ede95835a496e84857c38213dbf8ea451878e0;hp=3ff9e9e15dcac867fdd55fd6ed1db0ceca9ddb07;hpb=6f6daaaa5b5d4bd845b2a0b1b37463ff193ab73a;p=demos%2Fkafka%2Fchat diff --git a/src/test/java/de/juplo/kafka/chat/backend/implementation/inmemory/ShardedChatHomeServiceTest.java b/src/test/java/de/juplo/kafka/chat/backend/implementation/inmemory/ShardedChatHomeServiceTest.java index 3ff9e9e1..95501ad9 100644 --- a/src/test/java/de/juplo/kafka/chat/backend/implementation/inmemory/ShardedChatHomeServiceTest.java +++ b/src/test/java/de/juplo/kafka/chat/backend/implementation/inmemory/ShardedChatHomeServiceTest.java @@ -1,73 +1,18 @@ package de.juplo.kafka.chat.backend.implementation.inmemory; -import com.fasterxml.jackson.databind.ObjectMapper; import de.juplo.kafka.chat.backend.domain.ChatHomeServiceWithShardsTest; -import de.juplo.kafka.chat.backend.implementation.ShardingStrategy; -import de.juplo.kafka.chat.backend.implementation.StorageStrategy; -import de.juplo.kafka.chat.backend.storage.files.FilesStorageStrategy; -import org.springframework.boot.test.context.TestConfiguration; -import org.springframework.context.annotation.Bean; +import org.springframework.test.context.TestPropertySource; -import java.net.URI; -import java.nio.file.Paths; -import java.time.Clock; -import java.util.stream.IntStream; +import static de.juplo.kafka.chat.backend.domain.ChatHomeServiceWithShardsTest.NUM_SHARDS; +import static de.juplo.kafka.chat.backend.domain.ChatHomeServiceWithShardsTest.OWNED_SHARD; + +@TestPropertySource(properties = { + "chat.backend.inmemory.sharding-strategy=kafkalike", + "chat.backend.inmemory.num-shards=" + NUM_SHARDS, + "chat.backend.inmemory.owned-shards=" + OWNED_SHARD, + "chat.backend.inmemory.storage-strategy=files", + "chat.backend.inmemory.storage-directory=target/test-classes/data/files" }) public class ShardedChatHomeServiceTest extends ChatHomeServiceWithShardsTest { - @TestConfiguration - static class Configuration - { - @Bean - ShardedChatHomeService chatHome( - StorageStrategy storageStrategy, - Clock clock) - { - SimpleChatHomeService[] chatHomes = new SimpleChatHomeService[NUM_SHARDS]; - - IntStream - .of(ownedShards()) - .forEach(shard -> chatHomes[shard] = new SimpleChatHomeService( - shard, - storageStrategy, - clock, - bufferSize())); - - ShardingStrategy strategy = new KafkaLikeShardingStrategy(NUM_SHARDS); - - return new ShardedChatHomeService( - chatHomes, - IntStream - .range(0, NUM_SHARDS) - .mapToObj(shard -> "http://instance-0") - .map(uriString -> URI.create(uriString)) - .toArray(size -> new URI[size]), - strategy); - } - - @Bean - public FilesStorageStrategy storageStrategy(Clock clock) - { - return new FilesStorageStrategy( - Paths.get("target", "test-classes", "data", "files"), - new KafkaLikeShardingStrategy(NUM_SHARDS), - new ObjectMapper()); - } - - @Bean - Clock clock() - { - return Clock.systemDefaultZone(); - } - - int[] ownedShards() - { - return new int[] { OWNED_SHARD }; - } - - int bufferSize() - { - return 8; - } - } }