From 80f633198ad2c2ea661bba1e52b4ef5baf86d09b Mon Sep 17 00:00:00 2001 From: lor6 Date: Mon, 12 Jun 2017 23:12:26 +0300 Subject: [PATCH] Junit5 (#2060) * junit 5 example * conditions example --- .../conditions/DisabledOnEnvironment.java | 15 ++++++++ .../DisabledOnEnvironmentCondition.java | 38 +++++++++++++++++++ .../src/main/resources/application.properties | 1 + .../java/com/stackify/test/UsersTest.java | 4 +- 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 guest/junit5-example/src/main/java/com/stackify/test/conditions/DisabledOnEnvironment.java create mode 100644 guest/junit5-example/src/main/java/com/stackify/test/conditions/DisabledOnEnvironmentCondition.java create mode 100644 guest/junit5-example/src/main/resources/application.properties diff --git a/guest/junit5-example/src/main/java/com/stackify/test/conditions/DisabledOnEnvironment.java b/guest/junit5-example/src/main/java/com/stackify/test/conditions/DisabledOnEnvironment.java new file mode 100644 index 0000000000..2c1fa80f2e --- /dev/null +++ b/guest/junit5-example/src/main/java/com/stackify/test/conditions/DisabledOnEnvironment.java @@ -0,0 +1,15 @@ +package com.stackify.test.conditions; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import org.junit.jupiter.api.extension.ExtendWith; + +@Target({ ElementType.METHOD }) +@Retention(RetentionPolicy.RUNTIME) +@ExtendWith(DisabledOnEnvironmentCondition.class) +public @interface DisabledOnEnvironment { + String[] value(); +} \ No newline at end of file diff --git a/guest/junit5-example/src/main/java/com/stackify/test/conditions/DisabledOnEnvironmentCondition.java b/guest/junit5-example/src/main/java/com/stackify/test/conditions/DisabledOnEnvironmentCondition.java new file mode 100644 index 0000000000..adb9d9c09e --- /dev/null +++ b/guest/junit5-example/src/main/java/com/stackify/test/conditions/DisabledOnEnvironmentCondition.java @@ -0,0 +1,38 @@ +package com.stackify.test.conditions; + +import java.io.IOException; +import java.util.Arrays; +import java.util.Optional; +import java.util.Properties; + +import org.junit.jupiter.api.extension.ConditionEvaluationResult; +import org.junit.jupiter.api.extension.TestExecutionCondition; +import org.junit.jupiter.api.extension.TestExtensionContext; +import org.junit.platform.commons.support.AnnotationSupport; + +import com.stackify.utils.ConnectionUtil; + +public class DisabledOnEnvironmentCondition implements TestExecutionCondition { + + @Override + public ConditionEvaluationResult evaluate(TestExtensionContext context) { + Properties props = new Properties(); + String env = ""; + try { + props.load(ConnectionUtil.class.getResourceAsStream("/application.properties")); + env = props.getProperty("env"); + } catch (IOException e) { + e.printStackTrace(); + } + Optional disabled = AnnotationSupport.findAnnotation(context.getElement().get(), DisabledOnEnvironment.class); + if (disabled.isPresent()) { + String[] envs = disabled.get().value(); + if (Arrays.asList(envs).contains(env)) { + return ConditionEvaluationResult.disabled("Disabled on environment " + env); + } + } + + return ConditionEvaluationResult.enabled("Enabled on environment "+env); + } + +} diff --git a/guest/junit5-example/src/main/resources/application.properties b/guest/junit5-example/src/main/resources/application.properties new file mode 100644 index 0000000000..601f964ff3 --- /dev/null +++ b/guest/junit5-example/src/main/resources/application.properties @@ -0,0 +1 @@ +env=dev \ No newline at end of file diff --git a/guest/junit5-example/src/test/java/com/stackify/test/UsersTest.java b/guest/junit5-example/src/test/java/com/stackify/test/UsersTest.java index fbbd56287d..88958a8232 100644 --- a/guest/junit5-example/src/test/java/com/stackify/test/UsersTest.java +++ b/guest/junit5-example/src/test/java/com/stackify/test/UsersTest.java @@ -23,6 +23,8 @@ import java.util.List; import com.stackify.daos.UserDAO; import com.stackify.models.User; +import com.stackify.test.conditions.DisabledOnEnvironment; + public class UsersTest implements DatabaseConnectionTest { private static UserDAO userDAO; @@ -110,7 +112,7 @@ public class UsersTest implements DatabaseConnectionTest { } @Test - @Disabled + @DisabledOnEnvironment({ "dev", "prod") void testFail() { fail("this test fails"); }