From c5e430c0425895adc97b85df0978617859b4998c Mon Sep 17 00:00:00 2001 From: NetoDevel Date: Mon, 10 May 2021 21:34:18 -0300 Subject: [PATCH] Adds Redis Devservices it --- integration-tests/pom.xml | 1 + integration-tests/redis-devservices/pom.xml | 91 +++++++++++++++++++ .../src/main/resources/application.properties | 5 + .../it/DevServicesRedisCustomPortITest.java | 22 +++++ .../it/DevServicesRedisDisabledITest.java | 22 +++++ .../devservices/it/DevServicesRedisITest.java | 42 +++++++++ .../it/profiles/DevServiceRedis.java | 14 +++ .../DevServicesCustomPortProfile.java | 19 ++++ .../profiles/DevServicesDisabledProfile.java | 19 ++++ .../redis/devservices/it/utils/SocketKit.java | 16 ++++ 10 files changed, 251 insertions(+) create mode 100644 integration-tests/redis-devservices/pom.xml create mode 100644 integration-tests/redis-devservices/src/main/resources/application.properties create mode 100644 integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/DevServicesRedisCustomPortITest.java create mode 100644 integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/DevServicesRedisDisabledITest.java create mode 100644 integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/DevServicesRedisITest.java create mode 100644 integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/profiles/DevServiceRedis.java create mode 100644 integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/profiles/DevServicesCustomPortProfile.java create mode 100644 integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/profiles/DevServicesDisabledProfile.java create mode 100644 integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/utils/SocketKit.java diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index 09b417c0b01c3..e98fe39422ecd 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -173,6 +173,7 @@ native-config-profile logging-min-level-unset logging-min-level-set + redis-devservices grpc-tls diff --git a/integration-tests/redis-devservices/pom.xml b/integration-tests/redis-devservices/pom.xml new file mode 100644 index 0000000000000..011d7181492d1 --- /dev/null +++ b/integration-tests/redis-devservices/pom.xml @@ -0,0 +1,91 @@ + + + 4.0.0 + + io.quarkus + quarkus-integration-tests-parent + 999-SNAPSHOT + ../pom.xml + + quarkus-integration-test-redis-devservices + Quarkus - Integration Tests - Redis DevService + + + + io.quarkus + quarkus-redis-client + + + io.quarkus + quarkus-arc + + + io.quarkus + quarkus-junit5 + test + + + + io.quarkus + quarkus-redis-client-deployment + ${project.version} + pom + test + + + * + * + + + + + io.quarkus + quarkus-arc-deployment + ${project.version} + pom + test + + + * + * + + + + + + + + + src/main/resources + true + + + + + maven-surefire-plugin + + true + + + + maven-failsafe-plugin + + true + + + + io.quarkus + quarkus-maven-plugin + + + + build + + + + + + + + diff --git a/integration-tests/redis-devservices/src/main/resources/application.properties b/integration-tests/redis-devservices/src/main/resources/application.properties new file mode 100644 index 0000000000000..c7cf99c88db91 --- /dev/null +++ b/integration-tests/redis-devservices/src/main/resources/application.properties @@ -0,0 +1,5 @@ +#quarkus.redis.hosts=redis://localhost:6379 +quarkus.redis.health.enabled=true +#quarkus.redis.devservices.image-name=redis:6.0-alpine +#quarkus.redis.devservices.port=6377 +#quarkus.redis.devservices.enabled=true \ No newline at end of file diff --git a/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/DevServicesRedisCustomPortITest.java b/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/DevServicesRedisCustomPortITest.java new file mode 100644 index 0000000000000..004bc4430cfaf --- /dev/null +++ b/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/DevServicesRedisCustomPortITest.java @@ -0,0 +1,22 @@ +package io.quarkus.redis.devservices.it; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.quarkus.redis.devservices.it.profiles.DevServicesCustomPortProfile; +import io.quarkus.redis.devservices.it.utils.SocketKit; +import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.junit.TestProfile; + +@QuarkusTest +@TestProfile(DevServicesCustomPortProfile.class) +public class DevServicesRedisCustomPortITest { + + @Test + @DisplayName("should start redis container with the given custom port") + public void shouldStartRedisContainer() { + Assertions.assertTrue(SocketKit.isPortAlreadyUsed(6371)); + } + +} diff --git a/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/DevServicesRedisDisabledITest.java b/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/DevServicesRedisDisabledITest.java new file mode 100644 index 0000000000000..2d3d741595736 --- /dev/null +++ b/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/DevServicesRedisDisabledITest.java @@ -0,0 +1,22 @@ +package io.quarkus.redis.devservices.it; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.quarkus.redis.devservices.it.profiles.DevServicesDisabledProfile; +import io.quarkus.redis.devservices.it.utils.SocketKit; +import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.junit.TestProfile; + +@QuarkusTest +@TestProfile(DevServicesDisabledProfile.class) +public class DevServicesRedisDisabledITest { + + @Test + @DisplayName("should not start the redis container when devservices is disabled") + public void shouldStartRedisContainer() { + Assertions.assertFalse(SocketKit.isPortAlreadyUsed(6379)); + } + +} diff --git a/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/DevServicesRedisITest.java b/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/DevServicesRedisITest.java new file mode 100644 index 0000000000000..2d88d683e9f79 --- /dev/null +++ b/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/DevServicesRedisITest.java @@ -0,0 +1,42 @@ +package io.quarkus.redis.devservices.it; + +import java.util.Arrays; + +import javax.inject.Inject; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import io.quarkus.redis.client.RedisClient; +import io.quarkus.redis.devservices.it.profiles.DevServiceRedis; +import io.quarkus.redis.devservices.it.utils.SocketKit; +import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.junit.TestProfile; + +@QuarkusTest +@TestProfile(DevServiceRedis.class) +public class DevServicesRedisITest { + + @Inject + RedisClient redisClient; + + @BeforeEach + public void setUp() { + redisClient.set(Arrays.asList("anykey", "anyvalue")); + } + + @Test + @DisplayName("given quarkus.redis.hosts disabled should start redis testcontainer") + public void shouldStartRedisContainer() { + Assertions.assertTrue(SocketKit.isPortAlreadyUsed(6379)); + } + + @Test + @DisplayName("given redis container must communicate with it and return value by key") + public void shouldReturnAllKeys() { + Assertions.assertEquals("anyvalue", redisClient.get("anykey").toString()); + } + +} diff --git a/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/profiles/DevServiceRedis.java b/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/profiles/DevServiceRedis.java new file mode 100644 index 0000000000000..8ca694a5347ef --- /dev/null +++ b/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/profiles/DevServiceRedis.java @@ -0,0 +1,14 @@ +package io.quarkus.redis.devservices.it.profiles; + +import java.util.Collections; +import java.util.Map; + +import io.quarkus.test.junit.QuarkusTestProfile; + +public class DevServiceRedis implements QuarkusTestProfile { + + @Override + public Map getConfigOverrides() { + return Collections.singletonMap("quarkus.redis.devservices.port", "6379"); + } +} diff --git a/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/profiles/DevServicesCustomPortProfile.java b/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/profiles/DevServicesCustomPortProfile.java new file mode 100644 index 0000000000000..cc68897d1fde9 --- /dev/null +++ b/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/profiles/DevServicesCustomPortProfile.java @@ -0,0 +1,19 @@ +package io.quarkus.redis.devservices.it.profiles; + +import java.util.Collections; +import java.util.Map; + +import io.quarkus.test.junit.QuarkusTestProfile; + +public class DevServicesCustomPortProfile implements QuarkusTestProfile { + + @Override + public Map getConfigOverrides() { + return Collections.singletonMap("quarkus.redis.devservices.port", "6371"); + } + + @Override + public String getConfigProfile() { + return "test"; + } +} diff --git a/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/profiles/DevServicesDisabledProfile.java b/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/profiles/DevServicesDisabledProfile.java new file mode 100644 index 0000000000000..aa1f4d4198ac9 --- /dev/null +++ b/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/profiles/DevServicesDisabledProfile.java @@ -0,0 +1,19 @@ +package io.quarkus.redis.devservices.it.profiles; + +import java.util.Collections; +import java.util.Map; + +import io.quarkus.test.junit.QuarkusTestProfile; + +public class DevServicesDisabledProfile implements QuarkusTestProfile { + + @Override + public Map getConfigOverrides() { + return Collections.singletonMap("quarkus.redis.devservices.enabled", "false"); + } + + @Override + public String getConfigProfile() { + return "test"; + } +} diff --git a/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/utils/SocketKit.java b/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/utils/SocketKit.java new file mode 100644 index 0000000000000..58bb62a0de7b5 --- /dev/null +++ b/integration-tests/redis-devservices/src/test/java/io/quarkus/redis/devservices/it/utils/SocketKit.java @@ -0,0 +1,16 @@ +package io.quarkus.redis.devservices.it.utils; + +import java.io.IOException; +import java.net.Socket; + +public class SocketKit { + + public static boolean isPortAlreadyUsed(Integer port) { + try (Socket ignored = new Socket("localhost", port)) { + ignored.close(); + return true; + } catch (IOException ignored) { + return false; + } + } +}