Integration tests structure unified, unnecessary imports removed (#1711)

Co-authored-by: iliax <ikuramshin@provectus.com>
This commit is contained in:
Ilya Kuramshin 2022-03-09 15:47:36 +03:00 committed by GitHub
parent f7e7bc0e38
commit a8fc61dcff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 29 additions and 88 deletions

View file

@ -11,20 +11,22 @@ import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.api.function.ThrowingConsumer; import org.junit.jupiter.api.function.ThrowingConsumer;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContextInitializer; import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.context.ContextConfiguration;
import org.testcontainers.containers.KafkaContainer; import org.testcontainers.containers.KafkaContainer;
import org.testcontainers.containers.Network; import org.testcontainers.containers.Network;
import org.testcontainers.utility.DockerImageName; import org.testcontainers.utility.DockerImageName;
@ExtendWith(SpringExtension.class)
@SpringBootTest @SpringBootTest
@ActiveProfiles("test") @ActiveProfiles("test")
public abstract class AbstractBaseTest { @AutoConfigureWebTestClient(timeout = "60000")
@ContextConfiguration(initializers = {AbstractIntegrationTest.Initializer.class})
public abstract class AbstractIntegrationTest {
public static final String LOCAL = "local"; public static final String LOCAL = "local";
public static final String SECOND_LOCAL = "secondLocal"; public static final String SECOND_LOCAL = "secondLocal";

View file

@ -21,15 +21,11 @@ import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.ParameterizedTypeReference;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.test.web.reactive.server.WebTestClient;
@ContextConfiguration(initializers = {AbstractBaseTest.Initializer.class})
@Slf4j @Slf4j
@AutoConfigureWebTestClient(timeout = "60000") public class KafkaConnectServiceTests extends AbstractIntegrationTest {
public class KafkaConnectServiceTests extends AbstractBaseTest {
private final String connectName = "kafka-connect"; private final String connectName = "kafka-connect";
private final String connectorName = UUID.randomUUID().toString(); private final String connectorName = UUID.randomUUID().toString();
private final Map<String, Object> config = Map.of( private final Map<String, Object> config = Map.of(

View file

@ -21,14 +21,10 @@ import org.apache.kafka.common.serialization.BytesDeserializer;
import org.apache.kafka.common.utils.Bytes; import org.apache.kafka.common.utils.Bytes;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.test.web.reactive.server.WebTestClient;
@ContextConfiguration(initializers = {AbstractBaseTest.Initializer.class})
@Slf4j @Slf4j
@AutoConfigureWebTestClient(timeout = "10000") public class KafkaConsumerGroupTests extends AbstractIntegrationTest {
public class KafkaConsumerGroupTests extends AbstractBaseTest {
@Autowired @Autowired
WebTestClient webTestClient; WebTestClient webTestClient;

View file

@ -19,16 +19,12 @@ import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.test.web.reactive.server.WebTestClient;
import reactor.core.publisher.Flux; import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
@ContextConfiguration(initializers = {AbstractBaseTest.Initializer.class})
@Slf4j @Slf4j
@AutoConfigureWebTestClient(timeout = "60000") public class KafkaConsumerTests extends AbstractIntegrationTest {
public class KafkaConsumerTests extends AbstractBaseTest {
@Autowired @Autowired
private WebTestClient webTestClient; private WebTestClient webTestClient;

View file

@ -2,18 +2,12 @@ package com.provectus.kafka.ui;
import com.provectus.kafka.ui.model.TopicCreationDTO; import com.provectus.kafka.ui.model.TopicCreationDTO;
import java.util.UUID; import java.util.UUID;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.test.web.reactive.server.WebTestClient;
@ContextConfiguration(initializers = {AbstractBaseTest.Initializer.class}) public class KafkaTopicCreateTests extends AbstractIntegrationTest {
@Slf4j
@AutoConfigureWebTestClient(timeout = "10000")
public class KafkaTopicCreateTests extends AbstractBaseTest {
@Autowired @Autowired
private WebTestClient webTestClient; private WebTestClient webTestClient;
private TopicCreationDTO topicCreation; private TopicCreationDTO topicCreation;

View file

@ -4,18 +4,12 @@ import com.provectus.kafka.ui.model.TopicCreationDTO;
import com.provectus.kafka.ui.model.TopicUpdateDTO; import com.provectus.kafka.ui.model.TopicUpdateDTO;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.test.web.reactive.server.WebTestClient;
@ContextConfiguration(initializers = {AbstractBaseTest.Initializer.class}) public class ReadOnlyModeTests extends AbstractIntegrationTest {
@Slf4j
@AutoConfigureWebTestClient(timeout = "60000")
public class ReadOnlyModeTests extends AbstractBaseTest {
@Autowired @Autowired
private WebTestClient webTestClient; private WebTestClient webTestClient;

View file

@ -13,18 +13,14 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.web.reactive.server.EntityExchangeResult; import org.springframework.test.web.reactive.server.EntityExchangeResult;
import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.test.web.reactive.server.WebTestClient;
import org.springframework.web.reactive.function.BodyInserters; import org.springframework.web.reactive.function.BodyInserters;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
@ContextConfiguration(initializers = {AbstractBaseTest.Initializer.class})
@Slf4j @Slf4j
@AutoConfigureWebTestClient(timeout = "10000") class SchemaRegistryServiceTests extends AbstractIntegrationTest {
class SchemaRegistryServiceTests extends AbstractBaseTest {
@Autowired @Autowired
WebTestClient webTestClient; WebTestClient webTestClient;
String subject; String subject;

View file

@ -2,7 +2,7 @@ package com.provectus.kafka.ui.emitter;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import com.provectus.kafka.ui.AbstractBaseTest; import com.provectus.kafka.ui.AbstractIntegrationTest;
import com.provectus.kafka.ui.model.ConsumerPosition; import com.provectus.kafka.ui.model.ConsumerPosition;
import com.provectus.kafka.ui.model.MessageFilterTypeDTO; import com.provectus.kafka.ui.model.MessageFilterTypeDTO;
import com.provectus.kafka.ui.model.SeekDirectionDTO; import com.provectus.kafka.ui.model.SeekDirectionDTO;
@ -24,18 +24,11 @@ import org.apache.kafka.common.serialization.StringSerializer;
import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.testcontainers.shaded.org.awaitility.Awaitility; import org.testcontainers.shaded.org.awaitility.Awaitility;
import reactor.core.Disposable; import reactor.core.Disposable;
import reactor.core.publisher.Flux; import reactor.core.publisher.Flux;
@ContextConfiguration(initializers = {AbstractBaseTest.Initializer.class}) class TailingEmitterTest extends AbstractIntegrationTest {
class TailingEmitterTest extends AbstractBaseTest {
@Autowired
private ApplicationContext ctx;
private String topic; private String topic;
@ -112,11 +105,11 @@ class TailingEmitterTest extends AbstractBaseTest {
private Flux<TopicMessageEventDTO> createTailingFlux( private Flux<TopicMessageEventDTO> createTailingFlux(
String topicName, String topicName,
String query) { String query) {
var cluster = ctx.getBean(ClustersStorage.class) var cluster = applicationContext.getBean(ClustersStorage.class)
.getClusterByName(LOCAL) .getClusterByName(LOCAL)
.get(); .get();
return ctx.getBean(MessagesService.class) return applicationContext.getBean(MessagesService.class)
.loadMessages(cluster, topicName, .loadMessages(cluster, topicName,
new ConsumerPosition(SeekTypeDTO.LATEST, Map.of(), SeekDirectionDTO.TAILING), new ConsumerPosition(SeekTypeDTO.LATEST, Map.of(), SeekDirectionDTO.TAILING),
query, query,

View file

@ -1,14 +1,12 @@
package com.provectus.kafka.ui.service; package com.provectus.kafka.ui.service;
import com.provectus.kafka.ui.AbstractBaseTest; import com.provectus.kafka.ui.AbstractIntegrationTest;
import com.provectus.kafka.ui.model.BrokerDTO; import com.provectus.kafka.ui.model.BrokerDTO;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import reactor.test.StepVerifier; import reactor.test.StepVerifier;
@ContextConfiguration(initializers = {AbstractBaseTest.Initializer.class}) class BrokerServiceTest extends AbstractIntegrationTest {
class BrokerServiceTest extends AbstractBaseTest {
@Autowired @Autowired
private BrokerService brokerService; private BrokerService brokerService;

View file

@ -2,7 +2,7 @@ package com.provectus.kafka.ui.service;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import com.provectus.kafka.ui.AbstractBaseTest; import com.provectus.kafka.ui.AbstractIntegrationTest;
import com.provectus.kafka.ui.model.BrokerConfigDTO; import com.provectus.kafka.ui.model.BrokerConfigDTO;
import java.time.Duration; import java.time.Duration;
import java.util.List; import java.util.List;
@ -10,15 +10,11 @@ import java.util.Map;
import java.util.Optional; import java.util.Optional;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.ParameterizedTypeReference;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.test.web.reactive.server.WebTestClient;
import org.testcontainers.shaded.org.awaitility.Awaitility; import org.testcontainers.shaded.org.awaitility.Awaitility;
@ContextConfiguration(initializers = {AbstractBaseTest.Initializer.class}) public class ConfigTest extends AbstractIntegrationTest {
@AutoConfigureWebTestClient(timeout = "60000")
public class ConfigTest extends AbstractBaseTest {
@Autowired @Autowired
private WebTestClient webTestClient; private WebTestClient webTestClient;

View file

@ -2,7 +2,7 @@ package com.provectus.kafka.ui.service;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import com.provectus.kafka.ui.AbstractBaseTest; import com.provectus.kafka.ui.AbstractIntegrationTest;
import com.provectus.kafka.ui.exception.LogDirNotFoundApiException; import com.provectus.kafka.ui.exception.LogDirNotFoundApiException;
import com.provectus.kafka.ui.exception.TopicOrPartitionNotFoundException; import com.provectus.kafka.ui.exception.TopicOrPartitionNotFoundException;
import com.provectus.kafka.ui.model.BrokerTopicLogdirsDTO; import com.provectus.kafka.ui.model.BrokerTopicLogdirsDTO;
@ -12,14 +12,10 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.ParameterizedTypeReference;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.test.web.reactive.server.WebTestClient;
@ContextConfiguration(initializers = {AbstractBaseTest.Initializer.class}) public class LogDirsTest extends AbstractIntegrationTest {
@AutoConfigureWebTestClient(timeout = "60000")
public class LogDirsTest extends AbstractBaseTest {
@Autowired @Autowired
private WebTestClient webTestClient; private WebTestClient webTestClient;

View file

@ -1,6 +1,6 @@
package com.provectus.kafka.ui.service; package com.provectus.kafka.ui.service;
import com.provectus.kafka.ui.AbstractBaseTest; import com.provectus.kafka.ui.AbstractIntegrationTest;
import com.provectus.kafka.ui.exception.TopicNotFoundException; import com.provectus.kafka.ui.exception.TopicNotFoundException;
import com.provectus.kafka.ui.model.CreateTopicMessageDTO; import com.provectus.kafka.ui.model.CreateTopicMessageDTO;
import com.provectus.kafka.ui.model.KafkaCluster; import com.provectus.kafka.ui.model.KafkaCluster;
@ -9,11 +9,9 @@ import java.util.UUID;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import reactor.test.StepVerifier; import reactor.test.StepVerifier;
@ContextConfiguration(initializers = {AbstractBaseTest.Initializer.class}) class MessagesServiceTest extends AbstractIntegrationTest {
class MessagesServiceTest extends AbstractBaseTest {
private static final String NON_EXISTING_TOPIC = UUID.randomUUID().toString(); private static final String NON_EXISTING_TOPIC = UUID.randomUUID().toString();

View file

@ -2,7 +2,7 @@ package com.provectus.kafka.ui.service;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import com.provectus.kafka.ui.AbstractBaseTest; import com.provectus.kafka.ui.AbstractIntegrationTest;
import com.provectus.kafka.ui.exception.NotFoundException; import com.provectus.kafka.ui.exception.NotFoundException;
import com.provectus.kafka.ui.exception.ValidationException; import com.provectus.kafka.ui.exception.ValidationException;
import com.provectus.kafka.ui.model.KafkaCluster; import com.provectus.kafka.ui.model.KafkaCluster;
@ -30,12 +30,10 @@ import org.apache.kafka.common.utils.Bytes;
import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.test.context.ContextConfiguration;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
import reactor.test.StepVerifier; import reactor.test.StepVerifier;
@ContextConfiguration(initializers = {AbstractBaseTest.Initializer.class}) public class OffsetsResetServiceTest extends AbstractIntegrationTest {
public class OffsetsResetServiceTest extends AbstractBaseTest {
private static final int PARTITIONS = 5; private static final int PARTITIONS = 5;

View file

@ -7,7 +7,7 @@ import static com.provectus.kafka.ui.model.SeekTypeDTO.OFFSET;
import static com.provectus.kafka.ui.model.SeekTypeDTO.TIMESTAMP; import static com.provectus.kafka.ui.model.SeekTypeDTO.TIMESTAMP;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import com.provectus.kafka.ui.AbstractBaseTest; import com.provectus.kafka.ui.AbstractIntegrationTest;
import com.provectus.kafka.ui.emitter.BackwardRecordEmitter; import com.provectus.kafka.ui.emitter.BackwardRecordEmitter;
import com.provectus.kafka.ui.emitter.ForwardRecordEmitter; import com.provectus.kafka.ui.emitter.ForwardRecordEmitter;
import com.provectus.kafka.ui.model.ConsumerPosition; import com.provectus.kafka.ui.model.ConsumerPosition;
@ -40,14 +40,12 @@ import org.apache.kafka.common.utils.Bytes;
import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.test.context.ContextConfiguration;
import reactor.core.publisher.Flux; import reactor.core.publisher.Flux;
import reactor.core.publisher.FluxSink; import reactor.core.publisher.FluxSink;
import reactor.test.StepVerifier; import reactor.test.StepVerifier;
@Slf4j @Slf4j
@ContextConfiguration(initializers = {AbstractBaseTest.Initializer.class}) class RecordEmitterTest extends AbstractIntegrationTest {
class RecordEmitterTest extends AbstractBaseTest {
static final int PARTITIONS = 5; static final int PARTITIONS = 5;
static final int MSGS_PER_PARTITION = 100; static final int MSGS_PER_PARTITION = 100;

View file

@ -3,7 +3,7 @@ package com.provectus.kafka.ui.service;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.provectus.kafka.ui.AbstractBaseTest; import com.provectus.kafka.ui.AbstractIntegrationTest;
import com.provectus.kafka.ui.model.ConsumerPosition; import com.provectus.kafka.ui.model.ConsumerPosition;
import com.provectus.kafka.ui.model.CreateTopicMessageDTO; import com.provectus.kafka.ui.model.CreateTopicMessageDTO;
import com.provectus.kafka.ui.model.KafkaCluster; import com.provectus.kafka.ui.model.KafkaCluster;
@ -27,11 +27,9 @@ import org.apache.kafka.common.TopicPartition;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import reactor.test.StepVerifier; import reactor.test.StepVerifier;
@ContextConfiguration(initializers = {AbstractBaseTest.Initializer.class}) public class SendAndReadTests extends AbstractIntegrationTest {
public class SendAndReadTests extends AbstractBaseTest {
private static final AvroSchema AVRO_SCHEMA_1 = new AvroSchema( private static final AvroSchema AVRO_SCHEMA_1 = new AvroSchema(
"{" "{"

View file

@ -1,11 +1,3 @@
kafka:
clusters:
-
name: local
bootstrapServers: localhost:9093
zookeeper: localhost:2181
schemaRegistry: http://localhost:8081
jmxPort: 9997
spring: spring:
jmx: jmx:
enabled: true enabled: true