test: Added tests for a chat-home _with_ shards
[demos/kafka/chat] / src / test / java / de / juplo / kafka / chat / backend / persistence / AbstractInMemoryStorageIT.java
1 package de.juplo.kafka.chat.backend.persistence;
2
3 import de.juplo.kafka.chat.backend.domain.ChatHome;
4 import de.juplo.kafka.chat.backend.domain.ChatRoomFactory;
5 import de.juplo.kafka.chat.backend.persistence.inmemory.InMemoryChatHomeService;
6 import de.juplo.kafka.chat.backend.persistence.inmemory.InMemoryChatRoomFactory;
7 import de.juplo.kafka.chat.backend.persistence.inmemory.SimpleChatHome;
8 import lombok.RequiredArgsConstructor;
9 import lombok.extern.slf4j.Slf4j;
10
11 import java.time.Clock;
12
13
14 @RequiredArgsConstructor
15 @Slf4j
16 public abstract class AbstractInMemoryStorageIT extends AbstractStorageStrategyIT
17 {
18   final Clock clock;
19
20   @Override
21   protected StorageStrategyITConfig getConfig()
22   {
23     return new StorageStrategyITConfig()
24     {
25       InMemoryChatHomeService inMemoryChatHomeService = new InMemoryChatHomeService(
26           1,
27           new int[] { 0 },
28           getStorageStrategy().read());
29
30       SimpleChatHome simpleChatHome = new SimpleChatHome(inMemoryChatHomeService);
31
32       InMemoryChatRoomFactory chatRoomFactory = new InMemoryChatRoomFactory(
33           inMemoryChatHomeService,
34           chatRoomId -> 0,
35           clock,
36           8);
37
38       @Override
39       public ChatHome getChatHome()
40       {
41         return simpleChatHome;
42       }
43
44       @Override
45       public ChatRoomFactory getChatRoomFactory()
46       {
47         return chatRoomFactory;
48       }
49     };
50   }
51 }