Skip to content

Commit

Permalink
NIFI-14225 Replaced deprecated methods in testcontainers with suggest…
Browse files Browse the repository at this point in the history
…ed replacements.
  • Loading branch information
dan-s1 committed Feb 3, 2025
1 parent a7bc0e5 commit a8fad68
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
import org.apache.nifi.serialization.RecordSetWriterFactory;
import org.apache.nifi.util.TestRunner;
import org.junit.jupiter.api.BeforeAll;
import org.testcontainers.containers.KafkaContainer;
import org.testcontainers.kafka.KafkaContainer;
import org.testcontainers.utility.DockerImageName;

import java.time.Duration;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
import org.testcontainers.containers.KafkaContainer;
import org.testcontainers.kafka.KafkaContainer;
import org.testcontainers.utility.DockerImageName;

import java.util.Collections;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.TestInstance.Lifecycle;
import org.junit.jupiter.api.io.TempDir;
import org.testcontainers.containers.KafkaContainer;
import org.testcontainers.kafka.KafkaContainer;
import org.testcontainers.utility.DockerImageName;
import org.testcontainers.utility.MountableFile;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
import org.junit.jupiter.api.TestMethodOrder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testcontainers.containers.KafkaContainer;
import org.testcontainers.kafka.KafkaContainer;
import org.testcontainers.utility.DockerImageName;

import java.time.Duration;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@

import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;
import org.testcontainers.containers.BindMode;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.utility.DockerImageName;
import org.testcontainers.utility.MountableFile;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
Expand Down Expand Up @@ -99,9 +99,8 @@ protected void configure() {
adjustConfiguration();

Path configurationFilePath = writeConfigurationFile().toAbsolutePath();
String hostPath = configurationFilePath.toString();
String containerPath = "/usr/local/etc/redis/redis.conf";
addFileSystemBind(hostPath, containerPath, BindMode.READ_WRITE);
withCopyToContainer(MountableFile.forHostPath(configurationFilePath), containerPath);

setCommand(containerPath);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,11 @@
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;

import eu.rekawek.toxiproxy.Proxy;
import eu.rekawek.toxiproxy.ToxiproxyClient;
import eu.rekawek.toxiproxy.model.ToxicDirection;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
Expand All @@ -46,7 +50,6 @@
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.containers.Network;
import org.testcontainers.containers.ToxiproxyContainer;
import org.testcontainers.containers.ToxiproxyContainer.ContainerProxy;
import org.testcontainers.containers.output.Slf4jLogConsumer;
import org.testcontainers.containers.wait.strategy.Wait;
import org.testcontainers.images.builder.Transferable;
Expand Down Expand Up @@ -90,12 +93,15 @@ public void shouldRescueAfterConnectionFailure() throws Exception {
writeFile("testDirectory/directory1/file", "content");
writeFile("testDirectory/directory2/file", "content");
writeFile("testDirectory/directory2/nested_directory/file", "content");
ContainerProxy sambaProxy = toxiproxy.getProxy("samba", 445);
final ToxiproxyClient toxiproxyClient = new ToxiproxyClient(toxiproxy.getHost(), toxiproxy.getControlPort());
final Proxy proxy = toxiproxyClient.createProxy("samba", "0.0.0.0:8666", "samba:445");
final String ipAddressViaToxiproxy = toxiproxy.getHost();
final int portViaToxiproxy = toxiproxy.getMappedPort(8666);
SmbjClientProviderService smbjClientProviderService = new SmbjClientProviderService();

Map<PropertyDescriptor, String> properties = new HashMap<>();
properties.put(HOSTNAME, sambaProxy.getContainerIpAddress());
properties.put(PORT, String.valueOf(sambaProxy.getProxyPort()));
properties.put(HOSTNAME, ipAddressViaToxiproxy);
properties.put(PORT, String.valueOf(portViaToxiproxy));
properties.put(SHARE, "share");
properties.put(USERNAME, "username");
properties.put(PASSWORD, "password");
Expand All @@ -105,7 +111,7 @@ public void shouldRescueAfterConnectionFailure() throws Exception {

smbjClientProviderService.onEnabled(mockConfigurationContext);

sambaProxy.toxics().latency("slow", ToxicDirection.DOWNSTREAM, 300);
proxy.toxics().latency("slow", ToxicDirection.DOWNSTREAM, 300);

AtomicInteger i = new AtomicInteger(0);

Expand All @@ -126,7 +132,8 @@ public void shouldRescueAfterConnectionFailure() throws Exception {

s = smbjClientProviderService.getClient();
if (iteration == 25) {
sambaProxy.setConnectionCut(true);
proxy.toxics().bandwidth("CUT_CONNECTION_DOWNSTREAM", ToxicDirection.DOWNSTREAM, 0L);
proxy.toxics().bandwidth("CUT_CONNECTION_UPSTREAM", ToxicDirection.UPSTREAM, 0L);
}

final Set<String> actual = s.listFiles("testDirectory")
Expand All @@ -141,7 +148,12 @@ public void shouldRescueAfterConnectionFailure() throws Exception {

} catch (Exception e) {
if (iteration == 50) {
sambaProxy.setConnectionCut(false);
try {
proxy.toxics().get("CUT_CONNECTION_DOWNSTREAM").remove();
proxy.toxics().get("CUT_CONNECTION_UPSTREAM").remove();
} catch (IOException ex) {
throw new RuntimeException(ex);
}
}
if (iteration == 100) {
fail();
Expand Down

0 comments on commit a8fad68

Please sign in to comment.