diff --git a/spring-cloud-kubernetes-examples/kubernetes-leader-election-example/pom.xml b/spring-cloud-kubernetes-examples/kubernetes-leader-election-example/pom.xml index 9e05eb53..bfc041c0 100644 --- a/spring-cloud-kubernetes-examples/kubernetes-leader-election-example/pom.xml +++ b/spring-cloud-kubernetes-examples/kubernetes-leader-election-example/pom.xml @@ -78,6 +78,14 @@ true + + maven-surefire-plugin + 2.22.2 + + + maven-failsafe-plugin + 2.22.2 + diff --git a/spring-cloud-kubernetes-examples/kubernetes-leader-election-example/src/test/java/org/springframework/cloud/kubernetes/examples/LeaderControllerTest.java b/spring-cloud-kubernetes-examples/kubernetes-leader-election-example/src/test/java/org/springframework/cloud/kubernetes/examples/LeaderControllerTest.java index fa8c4266..686cbcf2 100644 --- a/spring-cloud-kubernetes-examples/kubernetes-leader-election-example/src/test/java/org/springframework/cloud/kubernetes/examples/LeaderControllerTest.java +++ b/spring-cloud-kubernetes-examples/kubernetes-leader-election-example/src/test/java/org/springframework/cloud/kubernetes/examples/LeaderControllerTest.java @@ -19,11 +19,11 @@ package org.springframework.cloud.kubernetes.examples; import java.net.InetAddress; import java.net.UnknownHostException; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -36,7 +36,7 @@ import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class LeaderControllerTest { @Mock @@ -52,7 +52,7 @@ public class LeaderControllerTest { private LeaderController leaderController; - @Before + @BeforeEach public void before() throws UnknownHostException { this.host = InetAddress.getLocalHost().getHostName(); this.leaderController = new LeaderController(); diff --git a/spring-cloud-kubernetes-integration-tests/discovery/tests/pom.xml b/spring-cloud-kubernetes-integration-tests/discovery/tests/pom.xml index 5987eb4b..5fa02dc8 100644 --- a/spring-cloud-kubernetes-integration-tests/discovery/tests/pom.xml +++ b/spring-cloud-kubernetes-integration-tests/discovery/tests/pom.xml @@ -19,6 +19,12 @@ spring-boot-starter-test test + + org.junit.vintage + junit-vintage-engine + 5.6.2 + test + org.arquillian.cube arquillian-cube-kubernetes diff --git a/spring-cloud-kubernetes-integration-tests/simple-configmap/pom.xml b/spring-cloud-kubernetes-integration-tests/simple-configmap/pom.xml index b7caa713..4af81d26 100644 --- a/spring-cloud-kubernetes-integration-tests/simple-configmap/pom.xml +++ b/spring-cloud-kubernetes-integration-tests/simple-configmap/pom.xml @@ -36,6 +36,12 @@ spring-boot-starter-test test + + org.junit.vintage + junit-vintage-engine + 5.6.2 + test + org.arquillian.cube arquillian-cube-kubernetes diff --git a/spring-cloud-kubernetes-integration-tests/simple-core/pom.xml b/spring-cloud-kubernetes-integration-tests/simple-core/pom.xml index 77da694b..5f3982b1 100644 --- a/spring-cloud-kubernetes-integration-tests/simple-core/pom.xml +++ b/spring-cloud-kubernetes-integration-tests/simple-core/pom.xml @@ -36,6 +36,12 @@ spring-boot-starter-test test + + org.junit.vintage + junit-vintage-engine + 5.6.2 + test + org.arquillian.cube arquillian-cube-kubernetes diff --git a/spring-cloud-kubernetes-leader/pom.xml b/spring-cloud-kubernetes-leader/pom.xml index 9cd05253..4993a376 100644 --- a/spring-cloud-kubernetes-leader/pom.xml +++ b/spring-cloud-kubernetes-leader/pom.xml @@ -61,14 +61,24 @@ org.springframework.boot spring-boot-starter-test test + + + org.junit.vintage + junit-vintage-engine + + + - org.apache.maven.plugins + maven-surefire-plugin + 2.22.2 + + maven-failsafe-plugin - ${maven-failsafe-plugin.version} + 2.22.2 diff --git a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderAutoConfigurationTests.java b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderAutoConfigurationTests.java index 0072a811..fee60341 100644 --- a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderAutoConfigurationTests.java +++ b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderAutoConfigurationTests.java @@ -16,8 +16,9 @@ package org.springframework.cloud.kubernetes.leader; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -25,12 +26,11 @@ import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; -import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.reactive.server.WebTestClient; import static org.hamcrest.Matchers.containsString; -@RunWith(SpringRunner.class) +@ExtendWith(MockitoExtension.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, properties = { // Make sure test passes without Kubernetes cluster "spring.cloud.kubernetes.leader.autoStartup=false" }) diff --git a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderContextTest.java b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderContextTest.java index 7681d91b..cb291fed 100644 --- a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderContextTest.java +++ b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderContextTest.java @@ -18,11 +18,11 @@ package org.springframework.cloud.kubernetes.leader; import java.util.Optional; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.integration.leader.Candidate; @@ -33,7 +33,7 @@ import static org.mockito.Mockito.verify; /** * @author Gytis Trikleris */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class LeaderContextTest { @Mock @@ -47,7 +47,7 @@ public class LeaderContextTest { private LeaderContext leaderContext; - @Before + @BeforeEach public void before() { this.leaderContext = new LeaderContext(this.mockCandidate, this.mockLeadershipController); diff --git a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderInfoContributorTest.java b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderInfoContributorTest.java index abb04c3e..97de1bb3 100644 --- a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderInfoContributorTest.java +++ b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderInfoContributorTest.java @@ -19,11 +19,11 @@ package org.springframework.cloud.kubernetes.leader; import java.util.Map; import java.util.Optional; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.boot.actuate.info.Info; import org.springframework.integration.leader.Candidate; @@ -31,7 +31,7 @@ import org.springframework.integration.leader.Candidate; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.BDDMockito.given; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class LeaderInfoContributorTest { @Mock @@ -45,7 +45,7 @@ public class LeaderInfoContributorTest { private LeaderInfoContributor leaderInfoContributor; - @Before + @BeforeEach public void before() { this.leaderInfoContributor = new LeaderInfoContributor( this.mockLeadershipController, this.mockCandidate); diff --git a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderInitiatorTest.java b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderInitiatorTest.java index 92e05f9b..844e66b2 100644 --- a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderInitiatorTest.java +++ b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderInitiatorTest.java @@ -18,12 +18,12 @@ package org.springframework.cloud.kubernetes.leader; import java.time.Duration; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.BDDMockito.given; @@ -33,7 +33,7 @@ import static org.mockito.internal.verification.VerificationModeFactory.atLeastO /** * @author Gytis Trikleris */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class LeaderInitiatorTest { @Mock @@ -53,14 +53,14 @@ public class LeaderInitiatorTest { private LeaderInitiator leaderInitiator; - @Before + @BeforeEach public void before() { this.leaderInitiator = new LeaderInitiator(this.mockLeaderProperties, this.mockLeadershipController, this.mockLeaderRecordWatcher, this.mockPodReadinessWatcher); } - @After + @AfterEach public void after() { this.leaderInitiator.stop(); } diff --git a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderRecordWatcherTest.java b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderRecordWatcherTest.java index 59cfead8..a609ee43 100644 --- a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderRecordWatcherTest.java +++ b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderRecordWatcherTest.java @@ -26,11 +26,11 @@ import io.fabric8.kubernetes.client.Watcher; import io.fabric8.kubernetes.client.dsl.MixedOperation; import io.fabric8.kubernetes.client.dsl.NonNamespaceOperation; import io.fabric8.kubernetes.client.dsl.Resource; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.times; @@ -39,7 +39,7 @@ import static org.mockito.Mockito.verify; /** * @author Gytis Trikleris */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class LeaderRecordWatcherTest { @Mock @@ -71,22 +71,15 @@ public class LeaderRecordWatcherTest { private LeaderRecordWatcher watcher; - @Before + @BeforeEach public void before() { this.watcher = new LeaderRecordWatcher(this.mockLeaderProperties, this.mockLeadershipController, this.mockKubernetesClient); - - given(this.mockKubernetesClient.configMaps()) - .willReturn(this.mockConfigMapsOperation); - given(this.mockConfigMapsOperation.inNamespace(null)) - .willReturn(this.mockInNamespaceOperation); - given(this.mockInNamespaceOperation.withName(null)) - .willReturn(this.mockWithNameResource); - given(this.mockWithNameResource.watch(this.watcher)).willReturn(this.mockWatch); } @Test public void shouldStartOnce() { + initStubs(); this.watcher.start(); this.watcher.start(); @@ -95,6 +88,7 @@ public class LeaderRecordWatcherTest { @Test public void shouldStopOnce() { + initStubs(); this.watcher.start(); this.watcher.stop(); this.watcher.stop(); @@ -120,6 +114,7 @@ public class LeaderRecordWatcherTest { @Test public void shouldHandleClose() { + initStubs(); this.watcher.onClose(this.mockKubernetesClientException); verify(this.mockWithNameResource).watch(this.watcher); @@ -132,4 +127,14 @@ public class LeaderRecordWatcherTest { verify(this.mockWithNameResource, times(0)).watch(this.watcher); } + private void initStubs() { + given(this.mockKubernetesClient.configMaps()) + .willReturn(this.mockConfigMapsOperation); + given(this.mockConfigMapsOperation.inNamespace(null)) + .willReturn(this.mockInNamespaceOperation); + given(this.mockInNamespaceOperation.withName(null)) + .willReturn(this.mockWithNameResource); + given(this.mockWithNameResource.watch(this.watcher)).willReturn(this.mockWatch); + } + } diff --git a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderTest.java b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderTest.java index 9be158ba..93e8753f 100644 --- a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderTest.java +++ b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderTest.java @@ -16,11 +16,11 @@ package org.springframework.cloud.kubernetes.leader; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.integration.leader.Candidate; @@ -30,7 +30,7 @@ import static org.mockito.BDDMockito.given; /** * @author Gytis Trikleris */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class LeaderTest { private static final String ROLE = "test-role"; @@ -42,7 +42,7 @@ public class LeaderTest { private Leader leader; - @Before + @BeforeEach public void before() { this.leader = new Leader(ROLE, ID); } diff --git a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeadershipControllerTest.java b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeadershipControllerTest.java index 6c94e3f6..68eb61c8 100644 --- a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeadershipControllerTest.java +++ b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeadershipControllerTest.java @@ -17,11 +17,11 @@ package org.springframework.cloud.kubernetes.leader; import io.fabric8.kubernetes.client.KubernetesClient; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.integration.leader.Candidate; import org.springframework.integration.leader.event.LeaderEventPublisher; @@ -31,7 +31,7 @@ import static org.assertj.core.api.Assertions.assertThat; /** * @author Gytis Trikleris */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class LeadershipControllerTest { @Mock @@ -48,7 +48,7 @@ public class LeadershipControllerTest { private LeadershipController leadershipController; - @Before + @BeforeEach public void before() { this.leadershipController = new LeadershipController(this.mockCandidate, this.mockLeaderProperties, this.mockLeaderEventPublisher, diff --git a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/PodReadinessWatcherTest.java b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/PodReadinessWatcherTest.java index 3b2d26c7..4e8b308d 100644 --- a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/PodReadinessWatcherTest.java +++ b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/PodReadinessWatcherTest.java @@ -26,11 +26,11 @@ import io.fabric8.kubernetes.client.Watch; import io.fabric8.kubernetes.client.Watcher; import io.fabric8.kubernetes.client.dsl.MixedOperation; import io.fabric8.kubernetes.client.dsl.PodResource; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.times; @@ -39,7 +39,7 @@ import static org.mockito.Mockito.verify; /** * @author Gytis Trikleris */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class PodReadinessWatcherTest { private static final String POD_NAME = "test-pod"; @@ -70,18 +70,15 @@ public class PodReadinessWatcherTest { private PodReadinessWatcher watcher; - @Before + @BeforeEach public void before() { this.watcher = new PodReadinessWatcher(POD_NAME, this.mockKubernetesClient, this.mockLeadershipController); - - given(this.mockKubernetesClient.pods()).willReturn(this.mockPodsOperation); - given(this.mockPodsOperation.withName(POD_NAME)).willReturn(this.mockPodResource); - given(this.mockPodResource.watch(this.watcher)).willReturn(this.mockWatch); } @Test public void shouldStartOnce() { + initStubs(); this.watcher.start(); this.watcher.start(); @@ -90,6 +87,7 @@ public class PodReadinessWatcherTest { @Test public void shouldStopOnce() { + initStubs(); this.watcher.start(); this.watcher.stop(); this.watcher.stop(); @@ -99,6 +97,7 @@ public class PodReadinessWatcherTest { @Test public void shouldHandleEventWithStateChange() { + initStubs(); given(this.mockPodResource.isReady()).willReturn(true); given(this.mockPod.getStatus()).willReturn(this.mockPodStatus); @@ -110,6 +109,7 @@ public class PodReadinessWatcherTest { @Test public void shouldIgnoreEventIfStateDoesNotChange() { + initStubs(); given(this.mockPod.getStatus()).willReturn(this.mockPodStatus); this.watcher.start(); @@ -120,6 +120,7 @@ public class PodReadinessWatcherTest { @Test public void shouldHandleClose() { + initStubs(); this.watcher.onClose(this.mockKubernetesClientException); verify(this.mockPodResource).watch(this.watcher); @@ -132,4 +133,10 @@ public class PodReadinessWatcherTest { verify(this.mockPodResource, times(0)).watch(this.watcher); } + private void initStubs() { + given(this.mockKubernetesClient.pods()).willReturn(this.mockPodsOperation); + given(this.mockPodsOperation.withName(POD_NAME)).willReturn(this.mockPodResource); + given(this.mockPodResource.watch(this.watcher)).willReturn(this.mockWatch); + } + }