Skip to content

Commit b42607c

Browse files
authored
Migrate integration tests to Kraft (#434)
1 parent 418f850 commit b42607c

23 files changed

+279
-400
lines changed
Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,4 @@
11
KafkaServer {
2-
org.apache.kafka.common.security.scram.ScramLoginModule required
3-
username="admin" password="admin"
4-
user_admin="admin";
5-
};
6-
7-
KafkaClient {
82
org.apache.kafka.common.security.scram.ScramLoginModule required
93
username="admin" password="admin";
104
};

build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ dependencies {
4646
runtimeOnly("ch.qos.logback:logback-classic")
4747

4848
testImplementation("org.mockito:mockito-core")
49-
testImplementation("org.testcontainers:junit-jupiter")
50-
testImplementation("org.testcontainers:testcontainers")
51-
testImplementation("org.testcontainers:kafka")
49+
testImplementation("org.testcontainers:junit-jupiter:1.20.0")
50+
testImplementation("org.testcontainers:testcontainers:1.20.0")
51+
testImplementation("org.testcontainers:kafka:1.20.0")
5252
testImplementation("org.mockito:mockito-junit-jupiter:5.12.0")
5353
testImplementation("org.junit.jupiter:junit-jupiter-params:5.11.0")
5454
testImplementation("io.projectreactor:reactor-test")

src/main/java/com/michelin/ns4kafka/repository/kafka/KafkaStore.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,25 +41,30 @@
4141
*/
4242
@Slf4j
4343
public abstract class KafkaStore<T> {
44-
private final Map<String, T> store;
45-
private final AtomicBoolean initialized = new AtomicBoolean(false);
46-
private final ReentrantLock offsetUpdateLock;
47-
private final Condition offsetReachedThreshold;
4844
@Inject
4945
ApplicationContext applicationContext;
46+
5047
@Inject
5148
AdminClient adminClient;
49+
5250
@Inject
5351
KafkaStoreProperties kafkaStoreProperties;
52+
5453
@Inject
5554
@Named(TaskExecutors.SCHEDULED)
5655
TaskScheduler taskScheduler;
56+
57+
@Property(name = "ns4kafka.store.kafka.init-timeout")
58+
int initTimeout;
59+
60+
private final Map<String, T> store;
61+
private final AtomicBoolean initialized = new AtomicBoolean(false);
62+
private final ReentrantLock offsetUpdateLock;
63+
private final Condition offsetReachedThreshold;
5764
String kafkaTopic;
5865
Producer<String, T> kafkaProducer;
5966
long offsetInSchemasTopic = -1;
6067
long lastWrittenOffset = -1;
61-
@Property(name = "ns4kafka.store.kafka.init-timeout")
62-
int initTimeout;
6368

6469
KafkaStore(String kafkaTopic, Producer<String, T> kafkaProducer) {
6570
this.kafkaTopic = kafkaTopic;

src/main/java/com/michelin/ns4kafka/service/executor/TopicAsyncExecutor.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,19 @@ public void synchronizeTopics() {
9898

9999
Map<ConfigResource, Collection<AlterConfigOp>> updateTopics = checkTopics.stream()
100100
.map(topic -> {
101-
Map<String, String> actualConf =
102-
brokerTopics.get(topic.getMetadata().getName()).getSpec().getConfigs();
103-
Map<String, String> expectedConf =
104-
topic.getSpec().getConfigs() == null ? Map.of() : topic.getSpec().getConfigs();
101+
Map<String, String> actualConf = brokerTopics.get(topic.getMetadata().getName())
102+
.getSpec()
103+
.getConfigs();
104+
105+
Map<String, String> expectedConf = topic.getSpec().getConfigs() == null
106+
? Map.of() : topic.getSpec().getConfigs();
107+
105108
Collection<AlterConfigOp> topicConfigChanges = computeConfigChanges(expectedConf, actualConf);
106109
if (!topicConfigChanges.isEmpty()) {
107-
ConfigResource cr =
108-
new ConfigResource(ConfigResource.Type.TOPIC, topic.getMetadata().getName());
110+
ConfigResource cr = new ConfigResource(
111+
ConfigResource.Type.TOPIC,
112+
topic.getMetadata().getName()
113+
);
109114
return Map.entry(cr, topicConfigChanges);
110115
}
111116
return null;

src/test/java/com/michelin/ns4kafka/integration/AbstractIntegrationConnectTest.java

Lines changed: 0 additions & 43 deletions
This file was deleted.

src/test/java/com/michelin/ns4kafka/integration/AbstractIntegrationSchemaRegistryTest.java

Lines changed: 0 additions & 45 deletions
This file was deleted.

src/test/java/com/michelin/ns4kafka/integration/AbstractIntegrationTest.java

Lines changed: 0 additions & 86 deletions
This file was deleted.

src/test/java/com/michelin/ns4kafka/integration/AclIntegrationTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import static org.junit.jupiter.api.Assertions.assertTrue;
55

66
import com.michelin.ns4kafka.integration.TopicIntegrationTest.BearerAccessRefreshToken;
7+
import com.michelin.ns4kafka.integration.container.KafkaIntegrationTest;
78
import com.michelin.ns4kafka.model.AccessControlEntry;
89
import com.michelin.ns4kafka.model.AccessControlEntry.AccessControlEntrySpec;
910
import com.michelin.ns4kafka.model.AccessControlEntry.Permission;
@@ -21,7 +22,6 @@
2122
import com.michelin.ns4kafka.model.RoleBinding.Verb;
2223
import com.michelin.ns4kafka.service.executor.AccessControlEntryAsyncExecutor;
2324
import com.michelin.ns4kafka.validation.TopicValidator;
24-
import io.micronaut.context.annotation.Property;
2525
import io.micronaut.http.HttpMethod;
2626
import io.micronaut.http.HttpRequest;
2727
import io.micronaut.http.HttpResponse;
@@ -47,8 +47,7 @@
4747
import org.junit.jupiter.api.Test;
4848

4949
@MicronautTest
50-
@Property(name = "micronaut.security.gitlab.enabled", value = "false")
51-
class AclIntegrationTest extends AbstractIntegrationTest {
50+
class AclIntegrationTest extends KafkaIntegrationTest {
5251
@Inject
5352
@Client("/")
5453
HttpClient ns4KafkaClient;

src/test/java/com/michelin/ns4kafka/integration/ApiResourcesIntegrationTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
import static org.junit.jupiter.api.Assertions.assertEquals;
44

55
import com.michelin.ns4kafka.controller.ApiResourcesController;
6+
import com.michelin.ns4kafka.integration.container.KafkaIntegrationTest;
67
import com.michelin.ns4kafka.model.Metadata;
78
import com.michelin.ns4kafka.model.Namespace;
89
import com.michelin.ns4kafka.model.RoleBinding;
910
import com.michelin.ns4kafka.validation.TopicValidator;
10-
import io.micronaut.context.annotation.Property;
1111
import io.micronaut.core.type.Argument;
1212
import io.micronaut.http.HttpMethod;
1313
import io.micronaut.http.HttpRequest;
@@ -21,8 +21,7 @@
2121
import org.junit.jupiter.api.Test;
2222

2323
@MicronautTest
24-
@Property(name = "micronaut.security.gitlab.enabled", value = "false")
25-
class ApiResourcesIntegrationTest extends AbstractIntegrationTest {
24+
class ApiResourcesIntegrationTest extends KafkaIntegrationTest {
2625
@Inject
2726
@Client("/")
2827
HttpClient ns4KafkaClient;

src/test/java/com/michelin/ns4kafka/integration/ConnectIntegrationTest.java renamed to src/test/java/com/michelin/ns4kafka/integration/ConnectorIntegrationTest.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import static org.junit.jupiter.api.Assertions.assertTrue;
77

88
import com.michelin.ns4kafka.integration.TopicIntegrationTest.BearerAccessRefreshToken;
9+
import com.michelin.ns4kafka.integration.container.KafkaConnectIntegrationTest;
910
import com.michelin.ns4kafka.model.AccessControlEntry;
1011
import com.michelin.ns4kafka.model.AccessControlEntry.AccessControlEntrySpec;
1112
import com.michelin.ns4kafka.model.AccessControlEntry.Permission;
@@ -32,7 +33,6 @@
3233
import com.michelin.ns4kafka.validation.ConnectValidator;
3334
import com.michelin.ns4kafka.validation.TopicValidator;
3435
import io.micronaut.context.ApplicationContext;
35-
import io.micronaut.context.annotation.Property;
3636
import io.micronaut.http.HttpMethod;
3737
import io.micronaut.http.HttpRequest;
3838
import io.micronaut.http.HttpResponse;
@@ -53,8 +53,7 @@
5353

5454
@Slf4j
5555
@MicronautTest
56-
@Property(name = "micronaut.security.gitlab.enabled", value = "false")
57-
class ConnectIntegrationTest extends AbstractIntegrationConnectTest {
56+
class ConnectorIntegrationTest extends KafkaConnectIntegrationTest {
5857
@Inject
5958
private ApplicationContext applicationContext;
6059

@@ -75,7 +74,7 @@ class ConnectIntegrationTest extends AbstractIntegrationConnectTest {
7574
@BeforeAll
7675
void init() {
7776
// Create HTTP client as bean to load client configuration from application.yml
78-
connectClient = applicationContext.createBean(HttpClient.class, connectContainer.getUrl());
77+
connectClient = applicationContext.createBean(HttpClient.class, getConnectUrl());
7978

8079
Namespace namespace = Namespace.builder()
8180
.metadata(Metadata.builder()
@@ -181,7 +180,7 @@ void shouldGetConnectClusterVersion() {
181180
.toBlocking()
182181
.retrieve(HttpRequest.GET("/"), ServerInfo.class);
183182

184-
assertEquals("7.4.1-ccs", actual.version());
183+
assertEquals("7.7.0-ccs", actual.version());
185184
}
186185

187186
@Test
@@ -470,7 +469,7 @@ void shouldRestartConnector() throws InterruptedException {
470469
assertEquals(HttpStatus.OK, restartResponse.status());
471470

472471
waitForConnectorAndTasksToBeInState("ns1-co1", Connector.TaskState.RUNNING);
473-
472+
474473
ConnectorStateInfo actual = connectClient
475474
.toBlocking()
476475
.retrieve(HttpRequest.GET("/connectors/ns1-co1/status"), ConnectorStateInfo.class);

src/test/java/com/michelin/ns4kafka/integration/ExceptionHandlerIntegrationTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import static org.junit.jupiter.api.Assertions.assertTrue;
66

77
import com.michelin.ns4kafka.integration.TopicIntegrationTest.BearerAccessRefreshToken;
8+
import com.michelin.ns4kafka.integration.container.KafkaIntegrationTest;
89
import com.michelin.ns4kafka.model.AccessControlEntry;
910
import com.michelin.ns4kafka.model.AccessControlEntry.AccessControlEntrySpec;
1011
import com.michelin.ns4kafka.model.AccessControlEntry.Permission;
@@ -23,7 +24,6 @@
2324
import com.michelin.ns4kafka.model.Topic;
2425
import com.michelin.ns4kafka.model.Topic.TopicSpec;
2526
import com.michelin.ns4kafka.validation.TopicValidator;
26-
import io.micronaut.context.annotation.Property;
2727
import io.micronaut.http.HttpMethod;
2828
import io.micronaut.http.HttpRequest;
2929
import io.micronaut.http.HttpResponse;
@@ -41,8 +41,7 @@
4141
import org.junit.jupiter.api.Test;
4242

4343
@MicronautTest
44-
@Property(name = "micronaut.security.gitlab.enabled", value = "false")
45-
class ExceptionHandlerIntegrationTest extends AbstractIntegrationTest {
44+
class ExceptionHandlerIntegrationTest extends KafkaIntegrationTest {
4645
@Inject
4746
@Client("/")
4847
HttpClient ns4KafkaClient;

0 commit comments

Comments
 (0)