Skip to content

Commit 21b2bcc

Browse files
committed
added spring cloud contract consumer example
1 parent a5e7696 commit 21b2bcc

25 files changed

Lines changed: 625 additions & 3 deletions

File tree

settings.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@ include 'spring-data:spring-data-rest-associations'
22
include 'spring-data:spring-data-rest-springfox'
33

44
include 'spring-cloud:feign-with-spring-data-rest'
5+
include 'spring-cloud:sleuth-downstream-service'
6+
include 'spring-cloud:sleuth-upstream-service'
57
include 'spring-cloud:spring-cloud-contract-provider'
8+
include 'spring-cloud:spring-cloud-contract-consumer'
69

710
include 'pact:pact-feign-consumer' // must run before pact-spring-data-rest-provider
811
include 'pact:pact-spring-data-rest-provider'
912
include 'pact:pact-spring-provider'
1013

11-
include 'spring-cloud:sleuth-downstream-service'
12-
include 'spring-cloud:sleuth-upstream-service'
1314

1415
include 'spring-boot:rabbitmq-event-brokering'
1516

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Testing a Spring Boot REST API Consumer against a Contract with Spring Cloud Contract
2+
3+
## Companion Blog Article
4+
Read the [companion blog article](https://reflectoring.io/consumer-driven-contract-consumer-spring-cloud-contract/) to this repository.
5+
6+
## Getting Started
7+
8+
* have a look at the [contract](/src/test/resources/contracts)
9+
* have a look at the [feign client](/src/main/java/io/reflectoring/UserClient.java)
10+
* have a look at the [consumer test](/src/test/java/io/reflectoring/UserClientTest.java)
11+
* run `./gradlew publishToMavenLocal` in the [producer project](../spring-cloud-contract-provider)
12+
to create a provider stubs
13+
* run `./gradlew build` in this project to verify the feign client against the stub
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
userservice:
2+
ribbon:
3+
eureka:
4+
enabled: false
5+
listOfServers: localhost:9000
6+
7+
stubrunner:
8+
idsToServiceIds:
9+
spring-cloud-contract-provider: userservice
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
apply plugin: 'org.springframework.boot'
2+
3+
buildscript {
4+
repositories {
5+
mavenLocal()
6+
jcenter()
7+
}
8+
dependencies {
9+
classpath "org.springframework.boot:spring-boot-gradle-plugin:${springboot_version}"
10+
}
11+
}
12+
13+
14+
repositories {
15+
mavenLocal()
16+
jcenter()
17+
}
18+
19+
dependencies {
20+
compile("org.springframework.boot:spring-boot-starter-data-jpa:${springboot_version}")
21+
compile("org.springframework.boot:spring-boot-starter-web:${springboot_version}")
22+
compile("org.springframework.cloud:spring-cloud-starter-feign:1.4.1.RELEASE")
23+
compile('com.h2database:h2:1.4.196')
24+
testCompile("org.springframework.cloud:spring-cloud-starter-contract-stub-runner:${verifier_version}")
25+
testCompile("org.springframework.boot:spring-boot-starter-test:${springboot_version}")
26+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
springboot_version=1.5.9.RELEASE
2+
verifier_version=1.2.2.RELEASE
Binary file not shown.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
distributionBase=GRADLE_USER_HOME
2+
distributionPath=wrapper/dists
3+
zipStoreBase=GRADLE_USER_HOME
4+
zipStorePath=wrapper/dists
5+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.2-bin.zip

spring-cloud/spring-cloud-contract-consumer/gradlew

Lines changed: 172 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spring-cloud/spring-cloud-contract-consumer/gradlew.bat

Lines changed: 84 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Binary file not shown.

0 commit comments

Comments
 (0)