diff --git a/spring-cloud-info/src/test/java/org/springframework/cloud/info/InitializrSpringCloudInfoServiceTests.java b/spring-cloud-info/src/test/java/org/springframework/cloud/info/InitializrSpringCloudInfoServiceTests.java index 6306a4b4..13ee4566 100644 --- a/spring-cloud-info/src/test/java/org/springframework/cloud/info/InitializrSpringCloudInfoServiceTests.java +++ b/spring-cloud-info/src/test/java/org/springframework/cloud/info/InitializrSpringCloudInfoServiceTests.java @@ -21,7 +21,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -52,6 +51,7 @@ import org.springframework.cloud.info.exceptions.SpringCloudVersionNotFoundExcep import org.springframework.core.io.ClassPathResource; import org.springframework.web.client.RestTemplate; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import static org.assertj.core.api.Assertions.fail; import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.ArgumentMatchers.any; @@ -67,10 +67,10 @@ import static org.springframework.cloud.info.SpringCloudRelease.SPRING_CLOUD_REL /** * @author Ryan Baxter */ -public class InitializrSpringCloudInfoServiceTests { +class InitializrSpringCloudInfoServiceTests { @Test - public void getSpringCloudVersionBomRangesMissingTest() { + void getSpringCloudVersionBomRangesMissingTest() { RestTemplate rest = mock(RestTemplate.class); Github github = mock(Github.class); GithubPomReader githubPomReader = mock(GithubPomReader.class); @@ -86,7 +86,7 @@ public class InitializrSpringCloudInfoServiceTests { } @Test - public void getSpringCloudVersionSpringCloudMissingTest() { + void getSpringCloudVersionSpringCloudMissingTest() { RestTemplate rest = mock(RestTemplate.class); Github github = mock(Github.class); GithubPomReader githubPomReader = mock(GithubPomReader.class); @@ -104,48 +104,51 @@ public class InitializrSpringCloudInfoServiceTests { } @Test - public void getSpringCloudReleaseVersionTest() throws Exception { + void getSpringCloudReleaseVersionTest() throws Exception { String bomVersion = "v2020.0.0-SNAPSHOT"; RestTemplate rest = mock(RestTemplate.class); Github github = mock(Github.class); GithubPomReader githubPomReader = mock(GithubPomReader.class); when(githubPomReader .readPomFromUrl(eq(String.format(SpringCloudRelease.SPRING_CLOUD_STARTER_PARENT_RAW, bomVersion)))) - .thenReturn(new MavenXpp3Reader().read(new FileReader( - new ClassPathResource("spring-cloud-starter-parent-pom.xml").getFile()))); + .thenReturn(new MavenXpp3Reader().read(new FileReader( + new ClassPathResource("spring-cloud-starter-parent-pom.xml").getFile()))); when(githubPomReader.readPomFromUrl( eq(String.format(SpringCloudRelease.SPRING_CLOUD_RELEASE_DEPENDENCIES_RAW, bomVersion)))) - .thenReturn(new MavenXpp3Reader().read( - new FileReader(new ClassPathResource("spring-cloud-dependencies-pom.xml").getFile()))); + .thenReturn(new MavenXpp3Reader().read( + new FileReader(new ClassPathResource("spring-cloud-dependencies-pom.xml").getFile()))); InitializrSpringCloudInfoService service = spy( new InitializrSpringCloudInfoService(rest, github, githubPomReader)); - doReturn(Arrays.asList(new String[] { bomVersion })).when(service).getSpringCloudVersions(); + doReturn(Arrays.asList(bomVersion)).when(service) + .getSpringCloudVersions(); Map releaseVersionsResult = service.getReleaseVersions(bomVersion); assertThat(releaseVersionsResult, Matchers.equalTo(SpringCloudInfoTestData.releaseVersions)); } - @Test(expected = SpringCloudVersionNotFoundException.class) - public void getSpringCloudReleaseVersionNotFoundTest() throws Exception { - String bomVersion = "vFooBar.BUILD-SNAPSHOT"; - RestTemplate rest = mock(RestTemplate.class); - Github github = mock(Github.class); - GithubPomReader githubPomReader = mock(GithubPomReader.class); - when(githubPomReader - .readPomFromUrl(eq(String.format(SpringCloudRelease.SPRING_CLOUD_STARTER_PARENT_RAW, bomVersion)))) - .thenReturn(new MavenXpp3Reader().read(new FileReader( - new ClassPathResource("spring-cloud-starter-parent-pom.xml").getFile()))); - when(githubPomReader.readPomFromUrl( - eq(String.format(SpringCloudRelease.SPRING_CLOUD_RELEASE_DEPENDENCIES_RAW, bomVersion)))) - .thenReturn(new MavenXpp3Reader().read( - new FileReader(new ClassPathResource("spring-cloud-dependencies-pom.xml").getFile()))); - InitializrSpringCloudInfoService service = spy( - new InitializrSpringCloudInfoService(rest, github, githubPomReader)); - doReturn(new ArrayList()).when(service).getSpringCloudVersions(); - service.getReleaseVersions(bomVersion); + @Test + void getSpringCloudReleaseVersionNotFoundTest() { + assertThatExceptionOfType(SpringCloudVersionNotFoundException.class).isThrownBy(() -> { + String bomVersion = "vFooBar.BUILD-SNAPSHOT"; + RestTemplate rest = mock(RestTemplate.class); + Github github = mock(Github.class); + GithubPomReader githubPomReader = mock(GithubPomReader.class); + when(githubPomReader + .readPomFromUrl(eq(String.format(SpringCloudRelease.SPRING_CLOUD_STARTER_PARENT_RAW, bomVersion)))) + .thenReturn(new MavenXpp3Reader().read(new FileReader( + new ClassPathResource("spring-cloud-starter-parent-pom.xml").getFile()))); + when(githubPomReader.readPomFromUrl( + eq(String.format(SpringCloudRelease.SPRING_CLOUD_RELEASE_DEPENDENCIES_RAW, bomVersion)))) + .thenReturn(new MavenXpp3Reader().read( + new FileReader(new ClassPathResource("spring-cloud-dependencies-pom.xml").getFile()))); + InitializrSpringCloudInfoService service = spy( + new InitializrSpringCloudInfoService(rest, github, githubPomReader)); + doReturn(new ArrayList()).when(service).getSpringCloudVersions(); + service.getReleaseVersions(bomVersion); + }); } @Test - public void getSpringCloudVersionsTest() throws Exception { + void getSpringCloudVersionsTest() throws Exception { RestTemplate rest = mock(RestTemplate.class); Github github = mock(Github.class); GithubPomReader githubPomReader = mock(GithubPomReader.class); @@ -167,7 +170,7 @@ public class InitializrSpringCloudInfoServiceTests { } @Test - public void getMilestoneDueDateTest() throws Exception { + void getMilestoneDueDateTest() throws Exception { RestTemplate rest = mock(RestTemplate.class); Github github = mock(Github.class); GithubPomReader githubPomReader = mock(GithubPomReader.class); @@ -188,7 +191,7 @@ public class InitializrSpringCloudInfoServiceTests { } @Test - public void getMilestonesTest() throws Exception { + void getMilestonesTest() throws Exception { RestTemplate rest = mock(RestTemplate.class); Github github = mock(Github.class); GithubPomReader githubPomReader = mock(GithubPomReader.class); @@ -222,16 +225,11 @@ public class InitializrSpringCloudInfoServiceTests { doReturn(builder.build()).when(milestone).json(); milestonesList.add(milestone); } - return new Iterable() { - @Override - public Iterator iterator() { - return milestonesList.iterator(); - } - }; + return (Iterable) () -> milestonesList.iterator(); } @Test - public void getSpringCloudVersionTest() throws Exception { + void getSpringCloudVersionTest() throws Exception { RestTemplate rest = mock(RestTemplate.class); Github github = mock(Github.class); GithubPomReader githubPomReader = mock(GithubPomReader.class); diff --git a/spring-cloud-info/src/test/java/org/springframework/cloud/info/SpringCloudInfoRestControllerTests.java b/spring-cloud-info/src/test/java/org/springframework/cloud/info/SpringCloudInfoRestControllerTests.java index 84e85104..a7c7aa8e 100644 --- a/spring-cloud-info/src/test/java/org/springframework/cloud/info/SpringCloudInfoRestControllerTests.java +++ b/spring-cloud-info/src/test/java/org/springframework/cloud/info/SpringCloudInfoRestControllerTests.java @@ -18,18 +18,17 @@ package org.springframework.cloud.info; import java.util.stream.Collectors; -import org.junit.Rule; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.cloud.info.SpringCloudInfoService.SpringCloudVersion; import org.springframework.http.MediaType; -import org.springframework.restdocs.JUnitRestDocumentation; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.restdocs.RestDocumentationContextProvider; +import org.springframework.restdocs.RestDocumentationExtension; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; @@ -50,11 +49,9 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. * @author Ryan Baxter */ @WebMvcTest(SpringCloudInfoRestController.class) -@RunWith(SpringRunner.class) -public class SpringCloudInfoRestControllerTests { +@ExtendWith(RestDocumentationExtension.class) +class SpringCloudInfoRestControllerTests { - @Rule - public JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation(); @MockBean SpringCloudInfoService springCloudInfoService; @@ -66,15 +63,16 @@ public class SpringCloudInfoRestControllerTests { private WebApplicationContext context; @BeforeEach - public void setUp() { + void setUp(RestDocumentationContextProvider restDocumentation) { this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context) - .apply(documentationConfiguration(this.restDocumentation).uris().withHost("spring-cloud-info.cfapps.io") + .apply(documentationConfiguration(restDocumentation).uris() + .withHost("spring-cloud-info.cfapps.io") .withPort(80)) .build(); } @Test - public void version() throws Exception { + void version() throws Exception { doReturn(new SpringCloudVersion("Greenwich.RELEASE")).when(springCloudInfoService) .getSpringCloudVersion(eq("2.1.1.RELEASE")); this.mockMvc @@ -87,16 +85,18 @@ public class SpringCloudInfoRestControllerTests { } @Test - public void versions() throws Exception { - doReturn(springCloudVersions.stream().map(v -> v.replaceFirst("v", "")).collect(Collectors.toList())) + void versions() throws Exception { + doReturn(springCloudVersions.stream().map(v -> v.replaceFirst("v", "")) + .collect(Collectors.toList())) .when(springCloudInfoService).getSpringCloudVersions(); - this.mockMvc.perform(get("/springcloudversions").accept(MediaType.APPLICATION_JSON)).andExpect(status().isOk()) + this.mockMvc.perform(get("/springcloudversions").accept(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) .andDo(document("springcloudversions", responseFields(fieldWithPath("[]").description("An array versions")))); } @Test - public void bomVersions() throws Exception { + void bomVersions() throws Exception { doReturn(SpringCloudInfoTestData.releaseVersions).when(springCloudInfoService) .getReleaseVersions(eq("Finchley.SR1")); this.mockMvc.perform(get("/bomversions/Finchley.SR1").accept(MediaType.APPLICATION_JSON)) @@ -104,14 +104,16 @@ public class SpringCloudInfoRestControllerTests { } @Test - public void milestones() throws Exception { - doReturn(SpringCloudInfoTestData.milestoneStrings.keySet()).when(springCloudInfoService).getMilestones(); - this.mockMvc.perform(get("/milestones").accept(MediaType.APPLICATION_JSON)).andExpect(status().isOk()) + void milestones() throws Exception { + doReturn(SpringCloudInfoTestData.milestoneStrings.keySet()).when(springCloudInfoService) + .getMilestones(); + this.mockMvc.perform(get("/milestones").accept(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) .andDo(document("milestones")); } @Test - public void milestoneDueDate() throws Exception { + void milestoneDueDate() throws Exception { doReturn(new SpringCloudInfoService.Milestone("2019-07-31")).when(springCloudInfoService) .getMilestoneDueDate(eq("Hoxton.RELEASE")); this.mockMvc.perform(get("/milestones/{release}/duedate", "Hoxton.RELEASE").accept(MediaType.APPLICATION_JSON))