From d9fe42e949032ff0f8386761a448be9752a357c2 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Wed, 23 Jan 2019 11:00:12 +0100 Subject: [PATCH] Applying commit 55f648f on 2.0. branch --- spring-cloud-contract-wiremock/pom.xml | 20 ++- ...kFilesApplicationWithUrlResourceTests.java | 154 ++---------------- 2 files changed, 30 insertions(+), 144 deletions(-) diff --git a/spring-cloud-contract-wiremock/pom.xml b/spring-cloud-contract-wiremock/pom.xml index 7bfab6d312..aa8506e5ab 100644 --- a/spring-cloud-contract-wiremock/pom.xml +++ b/spring-cloud-contract-wiremock/pom.xml @@ -12,6 +12,16 @@ jar spring-cloud-contract-wiremock Spring Cloud Contract Wiremock + + + spring-milestones + Spring Milestones + https://repo.spring.io/libs-milestone-local + + false + + + com.github.tomakehurst @@ -90,10 +100,10 @@ test - sagan - sagan-site + com.example.github + github-webhook stubs - 1.0.0.BUILD-SNAPSHOT + 1.0.0.M1-190120_193303-VERSION test @@ -104,9 +114,9 @@ com.example.github - github-webhook + github-analytics stubs - 0.0.1-SNAPSHOT + 1.0.0.M1-190120_105104-VERSION test diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockFilesApplicationWithUrlResourceTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockFilesApplicationWithUrlResourceTests.java index 3bd0d0d356..d110d80ff9 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockFilesApplicationWithUrlResourceTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockFilesApplicationWithUrlResourceTests.java @@ -17,24 +17,18 @@ package org.springframework.cloud.contract.wiremock; -import java.util.ArrayList; -import java.util.List; - -import com.fasterxml.jackson.annotation.JsonInclude; +import org.assertj.core.api.BDDAssertions; import org.junit.Test; import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.web.client.RestTemplate; -import static org.assertj.core.api.BDDAssertions.then; @RunWith(SpringRunner.class) @SpringBootTest(classes = AutoConfigureWireMockFilesApplicationWithUrlResourceTests.Config.class, @@ -45,146 +39,28 @@ import static org.assertj.core.api.BDDAssertions.then; // end::load_all_stubs[] public class AutoConfigureWireMockFilesApplicationWithUrlResourceTests { - @Autowired - private RestTemplateSaganClient client; + @Value("${wiremock.server.port}") + int wiremockPort; @Test - public void contextLoads() throws Exception { - Release release = this.client.getRelease("spring-framework", "5.0.0.RC4"); + public void should_work_for_analytics() throws Exception { + String count = + new RestTemplate().getForObject("http://localhost:" + this.wiremockPort + "/issues/count", String.class); - then(release.releaseStatus).isEqualTo("PRERELEASE"); - then(release.refDocUrl).isEqualTo("http://docs.spring.io/spring/docs/{version}/spring-framework-reference/"); - then(release.apiDocUrl).isEqualTo("http://docs.spring.io/spring/docs/{version}/javadoc-api/"); - then(release.groupId).isEqualTo("org.springframework"); - then(release.artifactId).isEqualTo("spring-context"); - then(release.repository.id).isEqualTo("spring-milestones"); - then(release.repository.name).isEqualTo("Spring Milestones"); - then(release.repository.url).isEqualTo("https://repo.spring.io/libs-milestone"); - then(release.repository.snapshotsEnabled).isFalse(); - then(release.version).isEqualTo("5.0.0.RC4"); - then(release.current).isFalse(); - then(release.generalAvailability).isFalse(); - then(release.preRelease).isTrue(); - then(release.versionDisplayName).isEqualTo("5.0.0 RC4"); - then(release.snapshot).isFalse(); + BDDAssertions.then(count).isEqualTo("5"); + } + + @Test + public void should_work_for_webhook() throws Exception { + String response = + new RestTemplate().getForObject("http://localhost:" + this.wiremockPort + "/", String.class); + + BDDAssertions.then(response).contains("spring-cloud/spring-cloud-netflix"); } @Configuration @EnableAutoConfiguration static class Config { - @Bean - RestTemplateSaganClient restTemplateSaganClient(@Value("${app.baseUrl}") String url) { - return new RestTemplateSaganClient(new RestTemplate(), url); - } } -} - -/** - * @author Marcin Grzejszczak - */ -class RestTemplateSaganClient { - - private final RestTemplate restTemplate; - private final String baseUrl; - - RestTemplateSaganClient(RestTemplate restTemplate, String url) { - this.restTemplate = restTemplate; - this.baseUrl = url; - } - - public Release getRelease(String projectName, String releaseVersion) { - return this.restTemplate.getForObject(this.baseUrl + "/project_metadata/{projectName}/releases/{releaseVersion}", Release.class, projectName, releaseVersion); - } -} - -/** - * @author Marcin Grzejszczak - */ -@JsonInclude(value = JsonInclude.Include.NON_NULL) -class Project { - public String id = ""; - public String name = ""; - public String repoUrl = ""; - public String siteUrl = ""; - public String category = ""; - public String stackOverflowTags; - public List projectReleases = new ArrayList<>(); - public List stackOverflowTagList = new ArrayList<>(); - public Boolean aggregator; - - @Override public String toString() { - return "Project{" + "id='" + this.id + '\'' + ", name='" + this.name + '\'' + ", repoUrl='" - + this.repoUrl + '\'' + ", siteUrl='" + this.siteUrl + '\'' + ", category='" - + this.category + '\'' + ", stackOverflowTags='" + this.stackOverflowTags + '\'' - + ", projectReleases=" + this.projectReleases + ", stackOverflowTagList=" - + this.stackOverflowTagList + ", aggregator=" + this.aggregator + '}'; - } -} - -/** - * @author Marcin Grzejszczak - */ -@JsonInclude(value = JsonInclude.Include.NON_NULL) -class Release { - public String releaseStatus = ""; - public String refDocUrl = ""; - public String apiDocUrl = ""; - public String groupId = ""; - public String artifactId = ""; - public Repository repository; - public String version = ""; - public boolean current; - public boolean generalAvailability; - public boolean preRelease; - public String versionDisplayName = ""; - public boolean snapshot; - - @Override public String toString() { - return "Release{" + "releaseStatus='" + this.releaseStatus + '\'' + ", refDocUrl='" - + this.refDocUrl + '\'' + ", apiDocUrl='" + this.apiDocUrl + '\'' + ", groupId='" - + this.groupId + '\'' + ", artifactId='" + this.artifactId + '\'' + ", repository=" - + this.repository + ", version='" + this.version + '\'' + ", current=" + this.current - + ", generalAvailability=" + this.generalAvailability + ", preRelease=" - + this.preRelease + ", versionDisplayName='" + this.versionDisplayName + '\'' - + ", snapshot=" + this.snapshot + '}'; - } -} - -/** - * @author Marcin Grzejszczak - */ -@JsonInclude(value = JsonInclude.Include.NON_NULL) -class ReleaseUpdate { - public String groupId = ""; - public String artifactId = ""; - public String version = ""; - public String releaseStatus = ""; - public String refDocUrl = ""; - public String apiDocUrl = ""; - public Boolean current; - public Repository repository; - - @Override public String toString() { - return "ReleaseUpdate{" + "groupId='" + this.groupId + '\'' + ", artifactId='" - + this.artifactId + '\'' + ", version='" + this.version + '\'' + ", releaseStatus='" - + this.releaseStatus + '\'' + ", refDocUrl='" + this.refDocUrl + '\'' - + ", apiDocUrl='" + this.apiDocUrl + '\'' + ", repository=" + this.repository + '}'; - } -} - -/** - * @author Marcin Grzejszczak - */ -@JsonInclude(value = JsonInclude.Include.NON_NULL) -class Repository { - public String id; - public String name; - public String url; - public Boolean snapshotsEnabled; - - @Override public String toString() { - return "Repository{" + "id='" + this.id + '\'' + ", name='" + this.name + '\'' + ", url='" - + this.url + '\'' + ", snapshotsEnabled=" + this.snapshotsEnabled + '}'; - } } \ No newline at end of file