b967df8236776567fb14ea274deeec022ed9ecd1
[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
14
15 public class SimpleChatHomeServiceTest extends ChatHomeServiceTest
16 {
17   @TestConfiguration
18   static class Configuration
19   {
20     @Bean
21     SimpleChatHomeService chatHome(
22         StorageStrategy storageStrategy,
23         Clock clock)
24     {
25       return new SimpleChatHomeService(
26           storageStrategy,
27           clock,
28           bufferSize());
29     }
30
31     @Bean
32     FilesStorageStrategy storageStrategy(
33         Clock clock,
34         ObjectMapper objectMapper)
35     {
36       return new FilesStorageStrategy(
37           Paths.get("target", "test-classes", "data", "files"),
38           chatRoomId -> 0,
39           objectMapper);
40     }
41
42     @Bean
43     ObjectMapper objectMapper()
44     {
45       ObjectMapper objectMapper = new ObjectMapper();
46       objectMapper.registerModule(new JavaTimeModule());
47       return objectMapper;
48     }
49
50     @Bean
51     Clock clock()
52     {
53       return Clock.systemDefaultZone();
54     }
55
56     int bufferSize()
57     {
58       return 8;
59     }
60   }
61 }