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