1 package de.juplo.kafka.chat.backend.implementation.kafka;
3 import de.juplo.kafka.chat.backend.domain.ChatHomeServiceWithShardsTest;
4 import lombok.extern.slf4j.Slf4j;
5 import org.junit.jupiter.api.AfterAll;
6 import org.junit.jupiter.api.BeforeAll;
7 import org.springframework.beans.factory.annotation.Autowired;
8 import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration;
9 import org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration;
10 import org.springframework.kafka.core.KafkaTemplate;
11 import org.springframework.kafka.test.context.EmbeddedKafka;
12 import org.springframework.test.context.ContextConfiguration;
13 import org.springframework.test.context.TestPropertySource;
15 import static de.juplo.kafka.chat.backend.domain.ChatHomeServiceWithShardsTest.NUM_SHARDS;
16 import static de.juplo.kafka.chat.backend.implementation.kafka.KafkaChatHomeServiceTest.DATA_TOPIC;
17 import static de.juplo.kafka.chat.backend.implementation.kafka.KafkaChatHomeServiceTest.INFO_TOPIC;
20 @ContextConfiguration(classes = {
21 KafkaTestUtils.KafkaTestConfiguration.class,
22 KafkaAutoConfiguration.class,
23 TaskExecutionAutoConfiguration.class,
25 @TestPropertySource(properties = {
26 "chat.backend.services=kafka",
27 "chat.backend.kafka.client-id-PREFIX=TEST",
28 "chat.backend.kafka.bootstrap-servers=${spring.embedded.kafka.brokers}",
29 "spring.kafka.bootstrap-servers=${spring.embedded.kafka.brokers}",
30 "chat.backend.kafka.info-channel-topic=" + INFO_TOPIC,
31 "chat.backend.kafka.data-channel-topic=" + DATA_TOPIC,
32 "chat.backend.kafka.num-partitions=" + NUM_SHARDS,
35 topics = { INFO_TOPIC, DATA_TOPIC },
36 partitions = NUM_SHARDS)
38 public class KafkaChatHomeServiceTest extends ChatHomeServiceWithShardsTest
40 final static String INFO_TOPIC = "KAFKA_CHAT_HOME_TEST_INFO";
41 final static String DATA_TOPIC = "KAFKA_CHAT_HOME_TEST_DATA";
45 static void sendAndLoadStoredData(
46 @Autowired KafkaTemplate<String, String> messageTemplate,
47 @Autowired ChannelTaskRunner channelTaskRunner)
49 KafkaTestUtils.sendAndLoadStoredData(
57 static void joinChannels(
58 @Autowired ChannelTaskExecutor dataChannelTaskExecutor,
59 @Autowired ChannelTaskExecutor infoChannelTaskExecutor)
61 dataChannelTaskExecutor.join();
62 infoChannelTaskExecutor.join();