Skip to content

Commit 80f6331

Browse files
lor6Eugen
authored andcommitted
Junit5 (eugenp#2060)
* junit 5 example * conditions example
1 parent 1028ad7 commit 80f6331

4 files changed

Lines changed: 57 additions & 1 deletion

File tree

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.stackify.test.conditions;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
import java.lang.annotation.Target;
7+
8+
import org.junit.jupiter.api.extension.ExtendWith;
9+
10+
@Target({ ElementType.METHOD })
11+
@Retention(RetentionPolicy.RUNTIME)
12+
@ExtendWith(DisabledOnEnvironmentCondition.class)
13+
public @interface DisabledOnEnvironment {
14+
String[] value();
15+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.stackify.test.conditions;
2+
3+
import java.io.IOException;
4+
import java.util.Arrays;
5+
import java.util.Optional;
6+
import java.util.Properties;
7+
8+
import org.junit.jupiter.api.extension.ConditionEvaluationResult;
9+
import org.junit.jupiter.api.extension.TestExecutionCondition;
10+
import org.junit.jupiter.api.extension.TestExtensionContext;
11+
import org.junit.platform.commons.support.AnnotationSupport;
12+
13+
import com.stackify.utils.ConnectionUtil;
14+
15+
public class DisabledOnEnvironmentCondition implements TestExecutionCondition {
16+
17+
@Override
18+
public ConditionEvaluationResult evaluate(TestExtensionContext context) {
19+
Properties props = new Properties();
20+
String env = "";
21+
try {
22+
props.load(ConnectionUtil.class.getResourceAsStream("/application.properties"));
23+
env = props.getProperty("env");
24+
} catch (IOException e) {
25+
e.printStackTrace();
26+
}
27+
Optional<DisabledOnEnvironment> disabled = AnnotationSupport.findAnnotation(context.getElement().get(), DisabledOnEnvironment.class);
28+
if (disabled.isPresent()) {
29+
String[] envs = disabled.get().value();
30+
if (Arrays.asList(envs).contains(env)) {
31+
return ConditionEvaluationResult.disabled("Disabled on environment " + env);
32+
}
33+
}
34+
35+
return ConditionEvaluationResult.enabled("Enabled on environment "+env);
36+
}
37+
38+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
env=dev

guest/junit5-example/src/test/java/com/stackify/test/UsersTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import com.stackify.daos.UserDAO;
2424
import com.stackify.models.User;
2525

26+
import com.stackify.test.conditions.DisabledOnEnvironment;
27+
2628
public class UsersTest implements DatabaseConnectionTest {
2729

2830
private static UserDAO userDAO;
@@ -110,7 +112,7 @@ void testThrows() {
110112
}
111113

112114
@Test
113-
@Disabled
115+
@DisabledOnEnvironment({ "dev", "prod")
114116
void testFail() {
115117
fail("this test fails");
116118
}

0 commit comments

Comments
 (0)