DBZ-7223 Use separate test support classes
This commit is contained in:
parent
1f245b9c87
commit
c78a8d40ad
@ -5,8 +5,6 @@
|
||||
*/
|
||||
package io.debezium.connector.mongodb.junit;
|
||||
|
||||
import org.testcontainers.containers.Network;
|
||||
|
||||
import io.debezium.testing.testcontainers.MongoDbDeployment;
|
||||
import io.debezium.testing.testcontainers.MongoDbReplicaSet;
|
||||
import io.debezium.testing.testcontainers.MongoDbShardedCluster;
|
||||
@ -22,8 +20,6 @@ public final class MongoDbDatabaseProvider {
|
||||
// Should be aligned with definition in pom.xml
|
||||
public static final String MONGO_DOCKER_DESKTOP_PORT_DEFAULT = "27017:27117";
|
||||
|
||||
private static Network NETWORK = null;
|
||||
|
||||
private static MongoDbReplicaSet.Builder dockerReplicaSetBuilder() {
|
||||
// will be used only in environment with docker desktop
|
||||
var portResolver = ParsingPortResolver.parseProperty(MONGO_DOCKER_DESKTOP_PORT_PROPERTY, MONGO_DOCKER_DESKTOP_PORT_DEFAULT);
|
||||
@ -40,13 +36,7 @@ private static MongoDbReplicaSet.Builder dockerReplicaSetBuilder() {
|
||||
* @return MongoDb Replica set
|
||||
*/
|
||||
public static MongoDbReplicaSet dockerReplicaSet() {
|
||||
var replicaSetBuilder = dockerReplicaSetBuilder();
|
||||
if (NETWORK != null) {
|
||||
replicaSetBuilder.network(NETWORK);
|
||||
}
|
||||
var replicaSet = replicaSetBuilder.build();
|
||||
NETWORK = null;
|
||||
return replicaSet;
|
||||
return dockerReplicaSetBuilder().build();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -55,13 +45,7 @@ public static MongoDbReplicaSet dockerReplicaSet() {
|
||||
* @return MongoDb Replica set
|
||||
*/
|
||||
public static MongoDbReplicaSet dockerAuthReplicaSet() {
|
||||
var replicaSetBuilder = dockerReplicaSetBuilder().authEnabled(true);
|
||||
if (NETWORK != null) {
|
||||
replicaSetBuilder.network(NETWORK);
|
||||
}
|
||||
var replicaSet = replicaSetBuilder.build();
|
||||
NETWORK = null;
|
||||
return replicaSet;
|
||||
return dockerReplicaSetBuilder().authEnabled(true).build();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -69,7 +53,7 @@ public static MongoDbReplicaSet dockerAuthReplicaSet() {
|
||||
*
|
||||
* @return MongoDb Replica set
|
||||
*/
|
||||
private static MongoDbShardedCluster.Builder mongoDbShardedClusterBuilder() {
|
||||
public static MongoDbShardedCluster mongoDbShardedCluster() {
|
||||
// will be used only in environment with docker desktop
|
||||
var portResolver = ParsingPortResolver.parseProperty(MONGO_DOCKER_DESKTOP_PORT_PROPERTY, MONGO_DOCKER_DESKTOP_PORT_DEFAULT);
|
||||
var shardSize = Integer.parseInt(System.getProperty(MONGO_SHARD_SIZE, "2"));
|
||||
@ -79,22 +63,7 @@ private static MongoDbShardedCluster.Builder mongoDbShardedClusterBuilder() {
|
||||
.shardCount(shardSize)
|
||||
.replicaCount(replicaSize)
|
||||
.routerCount(1)
|
||||
.portResolver(portResolver);
|
||||
}
|
||||
|
||||
public static MongoDbShardedCluster mongoDbShardedCluster() {
|
||||
var clusterBuilder = mongoDbShardedClusterBuilder();
|
||||
if (NETWORK != null) {
|
||||
clusterBuilder.network(NETWORK);
|
||||
}
|
||||
var shardedCluster = clusterBuilder.build();
|
||||
NETWORK = null;
|
||||
return shardedCluster;
|
||||
}
|
||||
|
||||
public static MongoDbShardedCluster mongoDbShardedCluster(Network network) {
|
||||
return mongoDbShardedClusterBuilder()
|
||||
.network(network)
|
||||
.portResolver(portResolver)
|
||||
.build();
|
||||
}
|
||||
|
||||
@ -109,17 +78,6 @@ public static MongoDbDeployment externalOrDockerReplicaSet() {
|
||||
return platform.provider.get();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates MongoDB replica-set abstraction either for external database or a local MongoDB replica-set container with the provided container Network.
|
||||
*
|
||||
* @return MongoDb replica-set deployment
|
||||
*/
|
||||
public static MongoDbDeployment externalOrDockerReplicaSet(Network network) {
|
||||
NETWORK = network;
|
||||
var platform = MongoDbDatabaseVersionResolver.getPlatform();
|
||||
return platform.provider.get();
|
||||
}
|
||||
|
||||
private MongoDbDatabaseProvider() {
|
||||
}
|
||||
}
|
||||
|
@ -6,17 +6,15 @@
|
||||
package io.debezium.connector.mongodb.sink;
|
||||
|
||||
import static io.debezium.connector.mongodb.TestHelper.cleanDatabase;
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.Assume;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
import io.debezium.connector.mongodb.AbstractMongoConnectorIT;
|
||||
import io.debezium.connector.mongodb.junit.MongoDbDatabaseProvider;
|
||||
import io.debezium.connector.mongodb.sink.junit.NetworkIsolatedMongoDbDatabaseProvider;
|
||||
import io.debezium.testing.testcontainers.MongoDbDeployment;
|
||||
import io.debezium.testing.testcontainers.testhelper.TestInfrastructureHelper;
|
||||
import io.debezium.testing.testcontainers.util.DockerUtils;
|
||||
@ -32,11 +30,8 @@ public MongoDbDeployment getMongoDbDeployment() {
|
||||
|
||||
@BeforeClass
|
||||
public static void beforeAll() {
|
||||
Assume.assumeThat("Skipping DebeziumMongoDbConnectorResourceIT tests when assembly profile is not active!",
|
||||
System.getProperty("isAssemblyProfileActive", "false"),
|
||||
is("true"));
|
||||
DockerUtils.enableFakeDnsIfRequired();
|
||||
mongo = MongoDbDatabaseProvider.externalOrDockerReplicaSet(TestInfrastructureHelper.getNetwork());
|
||||
mongo = new NetworkIsolatedMongoDbDatabaseProvider(TestInfrastructureHelper.getNetwork()).dockerReplicaSet();
|
||||
mongo.start();
|
||||
}
|
||||
|
||||
|
@ -6,19 +6,15 @@
|
||||
package io.debezium.connector.mongodb.sink;
|
||||
|
||||
import static io.debezium.connector.mongodb.TestHelper.cleanDatabase;
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.Assume;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
import io.debezium.connector.mongodb.AbstractShardedMongoConnectorIT;
|
||||
import io.debezium.connector.mongodb.junit.MongoDbDatabaseProvider;
|
||||
import io.debezium.connector.mongodb.junit.MongoDbDatabaseVersionResolver;
|
||||
import io.debezium.connector.mongodb.junit.MongoDbPlatform;
|
||||
import io.debezium.connector.mongodb.sink.junit.NetworkIsolatedMongoDbDatabaseProvider;
|
||||
import io.debezium.testing.testcontainers.MongoDbDeployment;
|
||||
import io.debezium.testing.testcontainers.MongoDbShardedCluster;
|
||||
import io.debezium.testing.testcontainers.testhelper.TestInfrastructureHelper;
|
||||
@ -35,12 +31,8 @@ public MongoDbDeployment getMongoDbDeployment() {
|
||||
|
||||
@BeforeClass
|
||||
public static void beforeAll() {
|
||||
Assume.assumeThat("Skipping DebeziumMongoDbConnectorResourceIT tests when assembly profile is not active!",
|
||||
System.getProperty("isAssemblyProfileActive", "false"),
|
||||
is("true"));
|
||||
Assume.assumeTrue(MongoDbDatabaseVersionResolver.getPlatform().equals(MongoDbPlatform.MONGODB_DOCKER));
|
||||
DockerUtils.enableFakeDnsIfRequired();
|
||||
mongo = MongoDbDatabaseProvider.mongoDbShardedCluster(TestInfrastructureHelper.getNetwork());
|
||||
mongo = new NetworkIsolatedMongoDbDatabaseProvider(TestInfrastructureHelper.getNetwork()).mongoDbShardedCluster();
|
||||
mongo.start();
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,93 @@
|
||||
/*
|
||||
* Copyright Debezium Authors.
|
||||
*
|
||||
* Licensed under the Apache Software License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
package io.debezium.connector.mongodb.sink.junit;
|
||||
|
||||
import org.testcontainers.containers.Network;
|
||||
|
||||
import io.debezium.testing.testcontainers.MongoDbReplicaSet;
|
||||
import io.debezium.testing.testcontainers.MongoDbShardedCluster;
|
||||
import io.debezium.testing.testcontainers.util.ParsingPortResolver;
|
||||
|
||||
public final class NetworkIsolatedMongoDbDatabaseProvider {
|
||||
|
||||
public static final String MONGO_REPLICA_SIZE = "mongodb.replica.size";
|
||||
public static final String MONGO_SHARD_SIZE = "mongodb.shard.size";
|
||||
public static final String MONGO_SHARD_REPLICA_SIZE = "mongodb.shard.replica.size";
|
||||
public static final String MONGO_DOCKER_DESKTOP_PORT_PROPERTY = "mongodb.docker.desktop.ports";
|
||||
|
||||
// Should be aligned with definition in pom.xml
|
||||
public static final String MONGO_DOCKER_DESKTOP_PORT_DEFAULT = "27017:27117";
|
||||
|
||||
private final Network network;
|
||||
|
||||
public NetworkIsolatedMongoDbDatabaseProvider(Network network) {
|
||||
this.network = network;
|
||||
}
|
||||
|
||||
public NetworkIsolatedMongoDbDatabaseProvider() {
|
||||
this(null);
|
||||
}
|
||||
|
||||
private MongoDbReplicaSet.Builder dockerReplicaSetBuilder() {
|
||||
// will be used only in environment with docker desktop
|
||||
var portResolver = ParsingPortResolver.parseProperty(MONGO_DOCKER_DESKTOP_PORT_PROPERTY, MONGO_DOCKER_DESKTOP_PORT_DEFAULT);
|
||||
var replicaSize = Integer.parseInt(System.getProperty(MONGO_REPLICA_SIZE, "1"));
|
||||
|
||||
var builder = MongoDbReplicaSet.replicaSet()
|
||||
.memberCount(replicaSize)
|
||||
.portResolver(portResolver);
|
||||
if (network != null) {
|
||||
builder.network(network);
|
||||
}
|
||||
return builder;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs the default testing MongoDB replica set
|
||||
*
|
||||
* @return MongoDb Replica set
|
||||
*/
|
||||
public MongoDbReplicaSet dockerReplicaSet() {
|
||||
return dockerReplicaSetBuilder().build();
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs testing MongoDB replica set with enabled authentication
|
||||
*
|
||||
* @return MongoDb Replica set
|
||||
*/
|
||||
public MongoDbReplicaSet dockerAuthReplicaSet() {
|
||||
return dockerReplicaSetBuilder().authEnabled(true).build();
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs the default testing MongoDB sharded cluster
|
||||
*
|
||||
* @return MongoDb Replica set
|
||||
*/
|
||||
private MongoDbShardedCluster.Builder mongoDbShardedClusterBuilder() {
|
||||
// will be used only in environment with docker desktop
|
||||
var portResolver = ParsingPortResolver.parseProperty(MONGO_DOCKER_DESKTOP_PORT_PROPERTY, MONGO_DOCKER_DESKTOP_PORT_DEFAULT);
|
||||
var shardSize = Integer.parseInt(System.getProperty(MONGO_SHARD_SIZE, "2"));
|
||||
var replicaSize = Integer.parseInt(System.getProperty(MONGO_SHARD_REPLICA_SIZE, "1"));
|
||||
|
||||
var builder = MongoDbShardedCluster.shardedCluster()
|
||||
.shardCount(shardSize)
|
||||
.replicaCount(replicaSize)
|
||||
.routerCount(1)
|
||||
.portResolver(portResolver);
|
||||
|
||||
if (network != null) {
|
||||
builder.network(network);
|
||||
}
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
public MongoDbShardedCluster mongoDbShardedCluster() {
|
||||
return mongoDbShardedClusterBuilder().build();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user