test: Added tests for a chat-home (without shards)
[demos/kafka/chat] / src / test / java / de / juplo / kafka / chat / backend / persistence / inmemory / SimpleChatHomeTest.java
1 package de.juplo.kafka.chat.backend.persistence.inmemory;
2
3 import com.fasterxml.jackson.databind.ObjectMapper;
4 import de.juplo.kafka.chat.backend.domain.ChatHomeTest;
5 import de.juplo.kafka.chat.backend.persistence.StorageStrategy;
6 import de.juplo.kafka.chat.backend.persistence.storage.files.FilesStorageStrategy;
7 import org.springframework.boot.test.context.TestConfiguration;
8 import org.springframework.context.annotation.Bean;
9
10 import java.nio.file.Paths;
11 import java.time.Clock;
12
13
14 public class SimpleChatHomeTest extends ChatHomeTest
15 {
16   @TestConfiguration
17   static class Configuration
18   {
19     @Bean
20     SimpleChatHome chatHome(InMemoryChatHomeService chatHomeService)
21     {
22       return new SimpleChatHome(chatHomeService);
23     }
24
25     @Bean
26     InMemoryChatHomeService chatHomeService(StorageStrategy storageStrategy)
27     {
28       return new InMemoryChatHomeService(
29           1,
30           new int[] { 0 },
31           storageStrategy.read());
32     }
33
34     @Bean
35     public FilesStorageStrategy storageStrategy()
36     {
37       return new FilesStorageStrategy(
38           Paths.get("target", "test-classes", "data", "files"),
39           Clock.systemDefaultZone(),
40           8,
41           chatRoomId -> 0,
42           messageFlux -> new InMemoryChatRoomService(messageFlux),
43           new ObjectMapper());
44     }
45   }
46 }