package de.juplo.kafka.chat.backend.domain;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import de.juplo.kafka.chat.backend.ChatBackendProperties;
import de.juplo.kafka.chat.backend.domain.exceptions.LoadInProgressException;
import de.juplo.kafka.chat.backend.domain.exceptions.UnknownChatroomException;
+import de.juplo.kafka.chat.backend.implementation.inmemory.InMemoryServicesConfiguration;
+import de.juplo.kafka.chat.backend.implementation.kafka.KafkaServicesConfiguration;
+import de.juplo.kafka.chat.backend.storage.files.FilesStorageConfiguration;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import reactor.core.publisher.Mono;
import reactor.util.retry.Retry;
+import java.time.Clock;
import java.time.Duration;
import java.util.UUID;
import static pl.rzrz.assertj.reactor.Assertions.assertThat;
-@ExtendWith(SpringExtension.class)
-public abstract class ChatHomeTest
+@SpringJUnitConfig(classes = {
+ InMemoryServicesConfiguration.class,
+ FilesStorageConfiguration.class,
+ KafkaServicesConfiguration.class,
+ ChatHomeServiceTest.TestConfiguration.class })
+@EnableConfigurationProperties(ChatBackendProperties.class)
+public abstract class ChatHomeServiceTest
{
@Autowired
- ChatHome chatHome;
+ ChatHomeService chatHomeService;
@Test
// When
Mono<ChatRoomData> mono = Mono
- .defer(() -> chatHome.getChatRoomData(chatRoomId))
+ .defer(() -> chatHomeService.getChatRoomData(chatRoomId))
.log("testGetExistingChatroom")
.retryWhen(Retry
.backoff(5, Duration.ofSeconds(1))
// When
Mono<ChatRoomData> mono = Mono
- .defer(() -> chatHome.getChatRoomData(chatRoomId))
+ .defer(() -> chatHomeService.getChatRoomData(chatRoomId))
.log("testGetNonExistentChatroom")
.retryWhen(Retry
.backoff(5, Duration.ofSeconds(1))
assertThat(unknownChatroomException.getChatroomId()).isEqualTo(chatRoomId);
});
}
+
+ static class TestConfiguration
+ {
+ @Bean
+ ObjectMapper objectMapper()
+ {
+ ObjectMapper objectMapper = new ObjectMapper();
+ objectMapper.registerModule(new JavaTimeModule());
+ return objectMapper;
+ }
+
+ @Bean
+ Clock clock()
+ {
+ return Clock.systemDefaultZone();
+ }
+ }
}