From 797e17d9a89a54d275e011602cdcf57421f51196 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Thu, 13 Oct 2022 08:48:42 +0200 Subject: [PATCH] Check if redis available before looking up its version. See #654 --- .../springdata/redis/test/condition/EnabledOnCommand.java | 3 ++- .../redis/test/condition/EnabledOnCommandCondition.java | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/redis/util/src/main/java/example/springdata/redis/test/condition/EnabledOnCommand.java b/redis/util/src/main/java/example/springdata/redis/test/condition/EnabledOnCommand.java index 323030bd..16e5cb5f 100644 --- a/redis/util/src/main/java/example/springdata/redis/test/condition/EnabledOnCommand.java +++ b/redis/util/src/main/java/example/springdata/redis/test/condition/EnabledOnCommand.java @@ -36,7 +36,8 @@ import org.junit.jupiter.api.extension.ExtendWith; @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented -@ExtendWith(EnabledOnCommandCondition.class) +@EnabledOnRedisAvailable +@ExtendWith({EnabledOnRedisAvailableCondition.class}) public @interface EnabledOnCommand { String host() default "localhost"; diff --git a/redis/util/src/main/java/example/springdata/redis/test/condition/EnabledOnCommandCondition.java b/redis/util/src/main/java/example/springdata/redis/test/condition/EnabledOnCommandCondition.java index b5930581..cd4dcf60 100644 --- a/redis/util/src/main/java/example/springdata/redis/test/condition/EnabledOnCommandCondition.java +++ b/redis/util/src/main/java/example/springdata/redis/test/condition/EnabledOnCommandCondition.java @@ -36,12 +36,18 @@ import org.junit.platform.commons.util.AnnotationUtils; */ class EnabledOnCommandCondition implements ExecutionCondition { + EnabledOnRedisAvailableCondition redisAvailable = new EnabledOnRedisAvailableCondition(); + private static final ConditionEvaluationResult ENABLED_BY_DEFAULT = enabled("@EnabledOnCommand is not present"); private static final ExtensionContext.Namespace NAMESPACE = ExtensionContext.Namespace.create(RedisConditions.class); @Override public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) { + if(redisAvailable.evaluateExecutionCondition(context).isDisabled()) { + return disabled("Redis not available"); + } + var optional = AnnotationUtils.findAnnotation(context.getElement(), EnabledOnCommand.class); if (!optional.isPresent()) {