Skip to content

Commit af48da9

Browse files
David O'Sullivananthonydahanne
authored andcommitted
updates Conditonal CloudFoundry version based test to JUnit 5
1 parent c456d02 commit af48da9

File tree

77 files changed

+137
-133
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+137
-133
lines changed

integration-test/pom.xml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,18 @@
7676
<version>${project.version}</version>
7777
<scope>test</scope>
7878
</dependency>
79+
<dependency>
80+
<groupId>org.hamcrest</groupId>
81+
<artifactId>hamcrest-junit</artifactId>
82+
<version>2.0.0.0</version>
83+
<scope>test</scope>
84+
<exclusions>
85+
<exclusion>
86+
<groupId>junit</groupId>
87+
<artifactId>junit</artifactId>
88+
</exclusion>
89+
</exclusions>
90+
</dependency>
7991
<dependency>
8092
<groupId>org.immutables</groupId>
8193
<artifactId>value</artifactId>
@@ -91,11 +103,6 @@
91103
<artifactId>spring-boot-starter-test</artifactId>
92104
<scope>test</scope>
93105
</dependency>
94-
<dependency>
95-
<groupId>org.junit.vintage</groupId>
96-
<artifactId>junit-vintage-engine</artifactId>
97-
<scope>test</scope>
98-
</dependency>
99106
</dependencies>
100107

101108
<build>

integration-test/src/test/java/org/cloudfoundry/AbstractIntegrationTest.java

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,14 @@
1616

1717
package org.cloudfoundry;
1818

19-
import org.junit.After;
20-
import org.junit.Before;
21-
import org.junit.Rule;
22-
import org.junit.rules.TestName;
23-
import org.junit.runner.RunWith;
19+
import org.junit.jupiter.api.AfterEach;
20+
import org.junit.jupiter.api.BeforeEach;
21+
import org.junit.jupiter.api.TestInfo;
22+
import org.junit.jupiter.api.extension.RegisterExtension;
2423
import org.slf4j.Logger;
2524
import org.slf4j.LoggerFactory;
2625
import org.springframework.beans.factory.annotation.Autowired;
27-
import org.springframework.test.context.ContextConfiguration;
28-
import org.springframework.test.context.junit4.SpringRunner;
26+
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
2927
import reactor.core.publisher.Mono;
3028
import reactor.util.function.Tuple2;
3129

@@ -34,36 +32,40 @@
3432
import java.io.FileInputStream;
3533
import java.io.IOException;
3634
import java.io.InputStream;
35+
import java.lang.reflect.Method;
36+
import java.util.Optional;
3737
import java.util.function.Consumer;
3838

3939
import static org.assertj.core.api.Assertions.assertThat;
4040
import static org.cloudfoundry.util.tuple.TupleUtils.consumer;
4141

42-
@RunWith(SpringRunner.class)
43-
@ContextConfiguration(classes = IntegrationTestConfiguration.class)
42+
@SpringJUnitConfig(classes = IntegrationTestConfiguration.class)
4443
public abstract class AbstractIntegrationTest {
4544

4645
private final Logger logger = LoggerFactory.getLogger("cloudfoundry-client.test");
4746

48-
@Rule
49-
public final TestName testName = new TestName();
50-
51-
@Autowired
52-
@Rule
53-
public CloudFoundryVersionConditionalRule cloudFoundryVersion;
47+
public String testName;
5448

5549
@Autowired
5650
protected NameFactory nameFactory;
5751

58-
@Before
59-
public void testEntry() {
52+
@Autowired
53+
@RegisterExtension
54+
public CloudFoundryVersionConditionalRule cloudFoundryVersionConditionalRule;
55+
56+
@BeforeEach
57+
public void testEntry(TestInfo testInfo) {
58+
Optional<Method> testMethod = testInfo.getTestMethod();
59+
if (testMethod.isPresent()) {
60+
this.testName = testMethod.get().getName();
61+
}
6062
this.logger.debug(">> {} <<", getTestName());
6163
}
6264

63-
@After
65+
@AfterEach
6466
public final void testExit() {
65-
this.logger.debug("<< {} >>", getTestName());
66-
}
67+
this.logger.debug("<< {} >>", getTestName());
68+
}
6769

6870
protected static Mono<byte[]> getBytes(String path) {
6971
try (InputStream in = new FileInputStream(new File("src/test/resources", path)); ByteArrayOutputStream out = new ByteArrayOutputStream()) {
@@ -81,11 +83,11 @@ protected static Mono<byte[]> getBytes(String path) {
8183
}
8284

8385
protected static <T> Consumer<Tuple2<T, T>> tupleEquality() {
84-
return consumer((expected, actual) -> assertThat(actual).isEqualTo(expected));
85-
}
86+
return consumer((expected, actual) -> assertThat(actual).isEqualTo(expected));
87+
}
8688

8789
private String getTestName() {
88-
return String.format("%s.%s", this.getClass().getSimpleName(), this.testName.getMethodName());
89-
}
90+
return String.format("%s.%s", this.getClass().getSimpleName(), this.testName);
91+
}
9092

91-
}
93+
}

integration-test/src/test/java/org/cloudfoundry/CloudFoundryVersionConditionalRule.java

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,18 @@
1717
package org.cloudfoundry;
1818

1919
import com.github.zafarkhaja.semver.Version;
20-
import org.junit.Assume;
21-
import org.junit.rules.MethodRule;
22-
import org.junit.runners.model.FrameworkMethod;
23-
import org.junit.runners.model.Statement;
20+
import org.junit.jupiter.api.Assumptions;
21+
import org.junit.jupiter.api.extension.ConditionEvaluationResult;
22+
import org.junit.jupiter.api.extension.ExecutionCondition;
23+
import org.junit.jupiter.api.extension.ExtensionContext;
2424
import org.springframework.core.annotation.AnnotationUtils;
2525

26+
import java.lang.reflect.AnnotatedElement;
2627
import java.util.Optional;
2728

2829
import static org.cloudfoundry.CloudFoundryVersion.UNSPECIFIED;
2930

30-
final class CloudFoundryVersionConditionalRule implements MethodRule {
31+
final class CloudFoundryVersionConditionalRule implements ExecutionCondition {
3132

3233
private final Version server;
3334

@@ -36,23 +37,17 @@ final class CloudFoundryVersionConditionalRule implements MethodRule {
3637
}
3738

3839
@Override
39-
public Statement apply(Statement base, FrameworkMethod method, Object target) {
40-
return new Statement() {
40+
public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) {
41+
AnnotatedElement element = context.getElement().orElse(null);
4142

42-
@Override
43-
public void evaluate() throws Throwable {
44-
IfCloudFoundryVersion annotation = Optional.ofNullable(AnnotationUtils.findAnnotation(method.getMethod(), IfCloudFoundryVersion.class))
45-
.orElse(AnnotationUtils.findAnnotation(method.getDeclaringClass(), IfCloudFoundryVersion.class));
43+
IfCloudFoundryVersion annotation = AnnotationUtils.findAnnotation(element, IfCloudFoundryVersion.class);
4644

47-
boolean enabled = Optional.ofNullable(annotation)
45+
boolean enabled = Optional.ofNullable(annotation)
4846
.map(c -> isTestEnabled(c, CloudFoundryVersionConditionalRule.this.server))
4947
.orElse(true);
5048

51-
Assume.assumeTrue(String.format("Cloud Foundry version required by @IfCloudFoundryVersion is not valid for test method [%s].", method.getMethod()), enabled);
52-
53-
base.evaluate();
54-
}
55-
};
49+
return enabled ? ConditionEvaluationResult.enabled("Test enabled") : ConditionEvaluationResult.disabled(String.format("Cloud Foundry version required by @IfCloudFoundryVersion is not valid for test method [%s].", element));
50+
5651
}
5752

5853
private static boolean isTestEnabled(IfCloudFoundryVersion condition, Version server) {

integration-test/src/test/java/org/cloudfoundry/client/v2/ApplicationsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@
6969
import org.cloudfoundry.util.OperationUtils;
7070
import org.cloudfoundry.util.PaginationUtils;
7171
import org.cloudfoundry.util.ResourceUtils;
72-
import org.junit.Test;
72+
import org.junit.jupiter.api.Test;
7373
import org.springframework.beans.factory.annotation.Autowired;
7474
import org.springframework.core.io.ClassPathResource;
7575
import org.springframework.util.Assert;

integration-test/src/test/java/org/cloudfoundry/client/v2/BlobstoresTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import org.cloudfoundry.client.CloudFoundryClient;
2121
import org.cloudfoundry.client.v2.blobstores.DeleteBlobstoreBuildpackCachesRequest;
2222
import org.cloudfoundry.util.JobUtils;
23-
import org.junit.Test;
23+
import org.junit.jupiter.api.Test;
2424
import org.springframework.beans.factory.annotation.Autowired;
2525
import reactor.test.StepVerifier;
2626

integration-test/src/test/java/org/cloudfoundry/client/v2/BuildpacksTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import org.cloudfoundry.util.JobUtils;
3131
import org.cloudfoundry.util.PaginationUtils;
3232
import org.cloudfoundry.util.ResourceUtils;
33-
import org.junit.Test;
33+
import org.junit.jupiter.api.Test;
3434
import org.springframework.beans.factory.annotation.Autowired;
3535
import org.springframework.core.io.ClassPathResource;
3636
import reactor.core.publisher.Flux;

integration-test/src/test/java/org/cloudfoundry/client/v2/DomainsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
import org.cloudfoundry.util.JobUtils;
4646
import org.cloudfoundry.util.PaginationUtils;
4747
import org.cloudfoundry.util.ResourceUtils;
48-
import org.junit.Test;
48+
import org.junit.jupiter.api.Test;
4949
import org.springframework.beans.factory.annotation.Autowired;
5050
import reactor.core.publisher.Flux;
5151
import reactor.core.publisher.Mono;

integration-test/src/test/java/org/cloudfoundry/client/v2/EventsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.cloudfoundry.client.v2.events.GetEventRequest;
2323
import org.cloudfoundry.client.v2.events.ListEventsRequest;
2424
import org.cloudfoundry.util.ResourceUtils;
25-
import org.junit.Test;
25+
import org.junit.jupiter.api.Test;
2626
import org.springframework.beans.factory.annotation.Autowired;
2727
import reactor.core.publisher.Flux;
2828
import reactor.core.publisher.Mono;

integration-test/src/test/java/org/cloudfoundry/client/v2/FeatureFlagsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.cloudfoundry.client.v2.featureflags.GetFeatureFlagRequest;
2323
import org.cloudfoundry.client.v2.featureflags.ListFeatureFlagsRequest;
2424
import org.cloudfoundry.client.v2.featureflags.SetFeatureFlagRequest;
25-
import org.junit.Test;
25+
import org.junit.jupiter.api.Test;
2626
import org.springframework.beans.factory.annotation.Autowired;
2727
import reactor.core.publisher.Flux;
2828
import reactor.core.publisher.Mono;

integration-test/src/test/java/org/cloudfoundry/client/v2/InfoTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import org.cloudfoundry.AbstractIntegrationTest;
2121
import org.cloudfoundry.client.CloudFoundryClient;
2222
import org.cloudfoundry.client.v2.info.GetInfoRequest;
23-
import org.junit.Test;
23+
import org.junit.jupiter.api.Test;
2424
import org.springframework.beans.factory.annotation.Autowired;
2525
import reactor.test.StepVerifier;
2626

0 commit comments

Comments
 (0)