Skip to content

Commit 31e7d86

Browse files
committed
[#9913] Apply testcontainers to redis-lettuce-plugin-it
1 parent f4aee20 commit 31e7d86

File tree

3 files changed

+23
-21
lines changed

3 files changed

+23
-21
lines changed

plugins-it/redis-lettuce-it/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,9 @@
7676
<scope>test</scope>
7777
</dependency>
7878
<dependency>
79-
<groupId>it.ozimov</groupId>
80-
<artifactId>embedded-redis</artifactId>
81-
<version>0.7.3</version>
79+
<groupId>org.testcontainers</groupId>
80+
<artifactId>testcontainers</artifactId>
81+
<version>${testcontainers.version}</version>
8282
<scope>test</scope>
8383
</dependency>
8484
</dependencies>

plugins-it/redis-lettuce-it/src/test/java/com/navercorp/pinpoint/plugin/lettuce/RedisClient_IT.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package com.navercorp.pinpoint.plugin.lettuce;
1818

1919
import com.navercorp.pinpoint.bootstrap.plugin.test.Expectations;
20-
import com.navercorp.pinpoint.bootstrap.plugin.test.ExpectedTrace;
2120
import com.navercorp.pinpoint.bootstrap.plugin.test.PluginTestVerifier;
2221
import com.navercorp.pinpoint.bootstrap.plugin.test.PluginTestVerifierHolder;
2322
import com.navercorp.pinpoint.pluginit.utils.AgentPath;
@@ -31,7 +30,6 @@
3130
import com.navercorp.pinpoint.test.plugin.shared.SharedTestBeforeAllResult;
3231
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycleClass;
3332
import io.lettuce.core.AbstractRedisAsyncCommands;
34-
import io.lettuce.core.RedisAsyncCommandsImpl;
3533
import io.lettuce.core.RedisClient;
3634
import io.lettuce.core.RedisFuture;
3735
import io.lettuce.core.api.StatefulRedisConnection;
@@ -53,26 +51,29 @@
5351
@ImportPlugin("com.navercorp.pinpoint:pinpoint-redis-lettuce-plugin")
5452
@Dependency({"io.lettuce:lettuce-core:[5.0,]",
5553
"org.latencyutils:LatencyUtils:[2.0.3]",
56-
"it.ozimov:embedded-redis:[0.7.3]",
57-
PluginITConstants.VERSION, TestcontainersOption.TEST_CONTAINER, TestcontainersOption.MARIADB})
54+
PluginITConstants.VERSION, TestcontainersOption.TEST_CONTAINER})
5855
@SharedTestLifeCycleClass(RedisServer.class)
5956
public class RedisClient_IT {
6057
private static final String SERVICE_TYPE_REDIS_LETTUCE = "REDIS_LETTUCE";
6158

6259
private final Logger logger = LogManager.getLogger(getClass());
6360

61+
private static String host;
6462
private static int port;
6563
private static RedisClient redisClient;
6664

6765
@SharedTestBeforeAllResult
6866
public static void setBeforeAllResult(Properties beforeAllResult) {
6967
final String value = beforeAllResult.getProperty("PORT");
7068
port = Integer.parseInt(value);
69+
host = beforeAllResult.getProperty("HOST");
70+
7171
}
7272

7373
@BeforeClass
74-
public static void beforeClass() throws Exception {
75-
redisClient = RedisClient.create("redis://localhost:" + port);
74+
public static void beforeClass() {
75+
String url = String.format("redis://%s:%s", host, port);
76+
redisClient = RedisClient.create(url);
7677
}
7778

7879
@Test

plugins-it/redis-lettuce-it/src/test/java/com/navercorp/pinpoint/plugin/lettuce/RedisServer.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,34 +16,35 @@
1616

1717
package com.navercorp.pinpoint.plugin.lettuce;
1818

19-
import com.navercorp.pinpoint.pluginit.utils.SocketUtils;
2019
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycle;
21-
import org.apache.logging.log4j.LogManager;
22-
import org.apache.logging.log4j.Logger;
20+
import org.junit.Assume;
21+
import org.testcontainers.DockerClientFactory;
22+
import org.testcontainers.containers.GenericContainer;
23+
import org.testcontainers.utility.DockerImageName;
2324

2425
import java.util.Properties;
2526

2627
public class RedisServer implements SharedTestLifeCycle {
27-
private final Logger logger = LogManager.getLogger(getClass());
28-
29-
private redis.embedded.RedisServer redisServer;
28+
private GenericContainer<?> redis;
3029

3130
@Override
3231
public Properties beforeAll() {
33-
final int port = SocketUtils.findAvailableTcpPort(1000, 2000);
34-
redisServer = new redis.embedded.RedisServer(port);
32+
Assume.assumeTrue("Docker not enabled", DockerClientFactory.instance().isDockerAvailable());
3533

36-
redisServer.start();
34+
this.redis = new GenericContainer<>(DockerImageName.parse("redis:5.0.14-alpine"))
35+
.withExposedPorts(6379);
36+
redis.start();
3737

3838
Properties properties = new Properties();
39-
properties.setProperty("PORT", String.valueOf(port));
39+
properties.setProperty("HOST", redis.getHost());
40+
properties.setProperty("PORT", String.valueOf(redis.getMappedPort(6379)));
4041
return properties;
4142
}
4243

4344
@Override
4445
public void afterAll() {
45-
if (redisServer != null) {
46-
redisServer.stop();
46+
if (redis != null) {
47+
redis.close();
4748
}
4849
}
4950
}

0 commit comments

Comments
 (0)