NEU
[demos/kafka/chat] / src / test / java / de / juplo / kafka / chat / backend / KafkaConfigurationIT.java
1 package de.juplo.kafka.chat.backend;
2
3 import de.juplo.kafka.chat.backend.domain.ShardingStrategy;
4 import org.junit.jupiter.api.BeforeAll;
5 import org.springframework.beans.factory.annotation.Autowired;
6 import org.springframework.boot.test.context.SpringBootTest;
7 import org.springframework.kafka.core.KafkaTemplate;
8 import org.springframework.kafka.test.context.EmbeddedKafka;
9
10 import java.util.UUID;
11
12 import static de.juplo.kafka.chat.backend.KafkaConfigurationIT.TOPIC;
13
14
15 @SpringBootTest(
16     webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
17     properties = {
18         "chat.backend.services=kafka",
19         "chat.backend.kafka.client-id=TEST",
20         "chat.backend.kafka.bootstrap-servers=${spring.embedded.kafka.brokers}",
21         "spring.kafka.bootstrap-servers=${spring.embedded.kafka.brokers}",
22         "chat.backend.kafka.topic=" + TOPIC,
23         "chat.backend.kafka.num-partitions=3" })
24 @EmbeddedKafka(topics = TOPIC, partitions = 3)
25 class KafkaConfigurationIT extends AbstractConfigurationIT
26 {
27   final static String TOPIC = "TEST";
28
29   @BeforeAll
30   public static void test(
31       @Autowired ShardingStrategy shardingStrategy,
32       @Autowired KafkaTemplate<String, String> messageTemplate,
33       @Autowired KafkaTemplate<Integer, String> chatRoomTemplate)
34   {
35     UUID chatRoomId = UUID.fromString("5c73531c-6fc4-426c-adcb-afc5c140a0f7");
36     int shard = shardingStrategy.selectShard(chatRoomId);
37     chatRoomTemplate.send(TOPIC, null,"{\"id\":\"5c73531c-6fc4-426c-adcb-afc5c140a0f7\",\"shard\":" + shard + ",\"name\":\"FOO\"");
38     messageTemplate.send(TOPIC,"5c73531c-6fc4-426c-adcb-afc5c140a0f7","{ \"id\" : 1, \"user\" : \"peter\", \"text\" : \"Hallo, ich heiße Peter!\" }");
39     messageTemplate.send(TOPIC,"5c73531c-6fc4-426c-adcb-afc5c140a0f7","{ \"id\" : 1, \"user\" : \"ute\", \"text\" : \"Ich bin Ute...\" }");
40     messageTemplate.send(TOPIC,"5c73531c-6fc4-426c-adcb-afc5c140a0f7","{ \"id\" : 2, \"user\" : \"peter\", \"text\" : \"Willst du mit mir gehen?\" }");
41     messageTemplate.send(TOPIC,"5c73531c-6fc4-426c-adcb-afc5c140a0f7","{ \"id\" : 1, \"user\" : \"klaus\", \"text\" : \"Ja? Nein? Vielleicht??\" }");
42   }
43 }