feat: Introduced config-parameters for the `io.projectreactor`-logging
[demos/kafka/chat] / src / test / java / de / juplo / kafka / chat / backend / implementation / inmemory / SimpleChatHomeServiceTest.java
1 package de.juplo.kafka.chat.backend.implementation.inmemory;
2
3 import com.fasterxml.jackson.databind.ObjectMapper;
4 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
5 import de.juplo.kafka.chat.backend.domain.ChatHomeServiceTest;
6 import de.juplo.kafka.chat.backend.implementation.StorageStrategy;
7 import de.juplo.kafka.chat.backend.storage.files.FilesStorageStrategy;
8 import org.springframework.boot.test.context.TestConfiguration;
9 import org.springframework.context.annotation.Bean;
10
11 import java.nio.file.Paths;
12 import java.time.Clock;
13 import java.util.logging.Level;
14
15
16 public class SimpleChatHomeServiceTest extends ChatHomeServiceTest
17 {
18   @TestConfiguration
19   static class Configuration
20   {
21     @Bean
22     SimpleChatHomeService chatHome(
23         StorageStrategy storageStrategy,
24         Clock clock)
25     {
26       return new SimpleChatHomeService(
27           storageStrategy,
28           clock,
29           bufferSize());
30     }
31
32     @Bean
33     FilesStorageStrategy storageStrategy(
34         Clock clock,
35         ObjectMapper objectMapper)
36     {
37       return new FilesStorageStrategy(
38           Paths.get("target", "test-classes", "data", "files"),
39           chatRoomId -> 0,
40           objectMapper,
41           Level.FINE,
42           true);
43     }
44
45     @Bean
46     ObjectMapper objectMapper()
47     {
48       ObjectMapper objectMapper = new ObjectMapper();
49       objectMapper.registerModule(new JavaTimeModule());
50       return objectMapper;
51     }
52
53     @Bean
54     Clock clock()
55     {
56       return Clock.systemDefaultZone();
57     }
58
59     int bufferSize()
60     {
61       return 8;
62     }
63   }
64 }