Fixing Junit tests. For spring-cloud-kubernetes-leader adding support for Junit5, for spring-cloud-kubernetes examples adding junit-vintage-engine since Arquillian Cube does not support JUnit5

This commit is contained in:
piomin
2020-06-07 14:14:22 +02:00
parent 5b9723accd
commit 4c754f8d9a
14 changed files with 116 additions and 68 deletions

View File

@@ -78,6 +78,14 @@
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.2</version>
</plugin>
</plugins>
</build>

View File

@@ -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();

View File

@@ -19,6 +19,12 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>5.6.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.arquillian.cube</groupId>
<artifactId>arquillian-cube-kubernetes</artifactId>

View File

@@ -36,6 +36,12 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>5.6.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.arquillian.cube</groupId>
<artifactId>arquillian-cube-kubernetes</artifactId>

View File

@@ -36,6 +36,12 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>5.6.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.arquillian.cube</groupId>
<artifactId>arquillian-cube-kubernetes</artifactId>

View File

@@ -61,14 +61,24 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven-failsafe-plugin.version}</version>
<version>2.22.2</version>
</plugin>
</plugins>
</build>

View File

@@ -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" })

View File

@@ -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);

View File

@@ -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);

View File

@@ -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();
}

View File

@@ -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);
}
}

View File

@@ -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);
}

View File

@@ -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,

View File

@@ -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);
}
}