diff --git a/kafka-ui-api/src/test/java/com/provectus/kafka/ui/AbstractBaseTest.java b/kafka-ui-api/src/test/java/com/provectus/kafka/ui/AbstractBaseTest.java new file mode 100644 index 0000000000..576dd53a44 --- /dev/null +++ b/kafka-ui-api/src/test/java/com/provectus/kafka/ui/AbstractBaseTest.java @@ -0,0 +1,35 @@ +package com.provectus.kafka.ui; + +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.ApplicationContextInitializer; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; +import org.testcontainers.containers.KafkaContainer; +import org.testcontainers.containers.Network; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.utility.DockerImageName; + +@RunWith(SpringRunner.class) +@SpringBootTest +@ActiveProfiles("test") +@Testcontainers +public abstract class AbstractBaseTest { + @Container + public static KafkaContainer kafka = new KafkaContainer(DockerImageName.parse("confluentinc/cp-kafka:5.2.1")) + .withNetwork(Network.SHARED); + @Container + public static SchemaRegistryContainer schemaRegistry = new SchemaRegistryContainer("5.2.1") + .withKafka(kafka) + .dependsOn(kafka); + + public static class Initializer implements ApplicationContextInitializer { + @Override + public void initialize(ConfigurableApplicationContext context) { + System.setProperty("kafka.clusters.0.name", "local"); + System.setProperty("kafka.clusters.0.schemaRegistry", schemaRegistry.getTarget()); + } + } +} diff --git a/kafka-ui-api/src/test/java/com/provectus/kafka/ui/KafkaMetricsApplicationTests.java b/kafka-ui-api/src/test/java/com/provectus/kafka/ui/KafkaMetricsApplicationTests.java index 174ef323b5..7404121b0e 100644 --- a/kafka-ui-api/src/test/java/com/provectus/kafka/ui/KafkaMetricsApplicationTests.java +++ b/kafka-ui-api/src/test/java/com/provectus/kafka/ui/KafkaMetricsApplicationTests.java @@ -1,12 +1,24 @@ package com.provectus.kafka.ui; -import org.junit.Test; -import org.springframework.boot.test.context.SpringBootTest; +import com.provectus.kafka.ui.rest.MetricsRestController; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.web.reactive.server.WebTestClient; -@SpringBootTest -class KafkaMetricsApplicationTests { +@ContextConfiguration(initializers = {AbstractBaseTest.Initializer.class}) +class KafkaMetricsApplicationTests extends AbstractBaseTest { + @Autowired + MetricsRestController metricsRestController; - @Test - public void contextLoads() { - } + @Test + public void shouldReturnEmptyRespWhenGetAllSchemas() { + WebTestClient testClient = WebTestClient.bindToController(metricsRestController) + .build(); + testClient.get() + .uri("http://localhost:8080/api/clusters/local/schemas") + .exchange() + .expectStatus().is2xxSuccessful() + .expectBody().isEmpty(); + } } diff --git a/kafka-ui-api/src/test/java/com/provectus/kafka/ui/SchemaRegistryContainer.java b/kafka-ui-api/src/test/java/com/provectus/kafka/ui/SchemaRegistryContainer.java index 14fca8a13f..1c9dc51225 100644 --- a/kafka-ui-api/src/test/java/com/provectus/kafka/ui/SchemaRegistryContainer.java +++ b/kafka-ui-api/src/test/java/com/provectus/kafka/ui/SchemaRegistryContainer.java @@ -7,17 +7,14 @@ import org.testcontainers.containers.Network; public class SchemaRegistryContainer extends GenericContainer { private static final int SCHEMA_PORT = 8081; - public SchemaRegistryContainer() { - this("5.2.1"); - } - public SchemaRegistryContainer(String version) { super("confluentinc/cp-schema-registry:" + version); withExposedPorts(8081); } public SchemaRegistryContainer withKafka(KafkaContainer kafka) { - return withKafka(kafka.getNetwork(), kafka.getNetworkAliases().get(0) + ":9092"); + String bootstrapServers = kafka.getNetworkAliases().get(0) + ":9092"; + return withKafka(kafka.getNetwork(), bootstrapServers); } public SchemaRegistryContainer withKafka(Network network, String bootstrapServers) { @@ -29,6 +26,6 @@ public class SchemaRegistryContainer extends GenericContainer