diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 84acd665a1..745a352d09 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -19,8 +19,13 @@ jobs: - name: Set up JDK uses: actions/setup-java@v3 with: +<<<<<<< HEAD distribution: 'temurin' java-version: 17 +======= + distribution: 'temurin' # See 'Supported distributions' for available options + java-version: 8 +>>>>>>> 3.1.x - name: Cache local Maven repository uses: actions/cache@v3 with: diff --git a/samples/standalone/contracts/com/example/server/pom.xml b/samples/standalone/contracts/com/example/server/pom.xml index e8cbde9626..cb808074b9 100644 --- a/samples/standalone/contracts/com/example/server/pom.xml +++ b/samples/standalone/contracts/com/example/server/pom.xml @@ -20,9 +20,15 @@ UTF-8 +<<<<<<< HEAD 17 4.0.0-SNAPSHOT 2022.0.0-SNAPSHOT +======= + 1.8 + 3.1.4-SNAPSHOT + 2021.0.3-SNAPSHOT +>>>>>>> 3.1.x true diff --git a/samples/standalone/dsl/http-server/pom.xml b/samples/standalone/dsl/http-server/pom.xml index aeeb2ae68d..0e6479ad4d 100644 --- a/samples/standalone/dsl/http-server/pom.xml +++ b/samples/standalone/dsl/http-server/pom.xml @@ -20,8 +20,14 @@ UTF-8 +<<<<<<< HEAD 17 4.0.0-SNAPSHOT +======= + 1.8 + 3.1.4-SNAPSHOT + 2021.0.3-SNAPSHOT +>>>>>>> 3.1.x diff --git a/samples/standalone/dsl/pom.xml b/samples/standalone/dsl/pom.xml index 0129e6665b..0de1a5ae86 100644 --- a/samples/standalone/dsl/pom.xml +++ b/samples/standalone/dsl/pom.xml @@ -7,7 +7,11 @@ org.springframework.cloud spring-cloud-contract-samples-standalone +<<<<<<< HEAD 4.0.0-SNAPSHOT +======= + 3.1.4-SNAPSHOT +>>>>>>> 3.1.x .. @@ -19,7 +23,11 @@ +<<<<<<< HEAD 4.0.0-SNAPSHOT +======= + 3.1.4-SNAPSHOT +>>>>>>> 3.1.x diff --git a/samples/standalone/restdocs/http-client/pom.xml b/samples/standalone/restdocs/http-client/pom.xml index 1765a460f2..65ec77a761 100644 --- a/samples/standalone/restdocs/http-client/pom.xml +++ b/samples/standalone/restdocs/http-client/pom.xml @@ -37,9 +37,14 @@ UTF-8 +<<<<<<< HEAD 17 4.0.0-SNAPSHOT 5.0.2-SNAPSHOT +======= + 1.8 + 3.1.4-SNAPSHOT +>>>>>>> 3.1.x diff --git a/samples/standalone/restdocs/http-server/pom.xml b/samples/standalone/restdocs/http-server/pom.xml index de3f2d308a..14cc52d712 100644 --- a/samples/standalone/restdocs/http-server/pom.xml +++ b/samples/standalone/restdocs/http-server/pom.xml @@ -20,8 +20,13 @@ UTF-8 +<<<<<<< HEAD 17 4.0.0-SNAPSHOT +======= + 1.8 + 3.1.4-SNAPSHOT +>>>>>>> 3.1.x true 5.0.2-SNAPSHOT diff --git a/samples/standalone/restdocs/pom.xml b/samples/standalone/restdocs/pom.xml index 254279206d..f75bdfa12f 100644 --- a/samples/standalone/restdocs/pom.xml +++ b/samples/standalone/restdocs/pom.xml @@ -7,7 +7,11 @@ org.springframework.cloud spring-cloud-contract-samples-standalone +<<<<<<< HEAD 4.0.0-SNAPSHOT +======= + 3.1.4-SNAPSHOT +>>>>>>> 3.1.x .. @@ -19,8 +23,12 @@ +<<<<<<< HEAD 4.0.0-SNAPSHOT true +======= + 3.1.4-SNAPSHOT +>>>>>>> 3.1.x diff --git a/samples/standalone/webclient/http-client/pom.xml b/samples/standalone/webclient/http-client/pom.xml index 16b5dfc905..de40d7aaeb 100644 --- a/samples/standalone/webclient/http-client/pom.xml +++ b/samples/standalone/webclient/http-client/pom.xml @@ -20,8 +20,13 @@ UTF-8 +<<<<<<< HEAD 17 4.0.0-SNAPSHOT +======= + 1.8 + 3.1.4-SNAPSHOT +>>>>>>> 3.1.x diff --git a/samples/standalone/webclient/http-server/pom.xml b/samples/standalone/webclient/http-server/pom.xml index 2fb9954121..0a0e86567b 100644 --- a/samples/standalone/webclient/http-server/pom.xml +++ b/samples/standalone/webclient/http-server/pom.xml @@ -20,8 +20,13 @@ UTF-8 +<<<<<<< HEAD 17 4.0.0-SNAPSHOT +======= + 1.8 + 3.1.4-SNAPSHOT +>>>>>>> 3.1.x diff --git a/samples/standalone/webclient/pom.xml b/samples/standalone/webclient/pom.xml index d0270f3966..777e15916e 100644 --- a/samples/standalone/webclient/pom.xml +++ b/samples/standalone/webclient/pom.xml @@ -7,7 +7,11 @@ org.springframework.cloud spring-cloud-contract-samples-standalone +<<<<<<< HEAD 4.0.0-SNAPSHOT +======= + 3.1.4-SNAPSHOT +>>>>>>> 3.1.x .. @@ -19,7 +23,11 @@ +<<<<<<< HEAD 4.0.0-SNAPSHOT +======= + 3.1.4-SNAPSHOT +>>>>>>> 3.1.x diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/ContractsToYaml.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/ContractsToYaml.java index f1419f41b2..e61530ee4d 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/ContractsToYaml.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/ContractsToYaml.java @@ -101,6 +101,7 @@ class ContractsToYaml { yamlContract.description = contract.getDescription(); yamlContract.label = contract.getLabel(); yamlContract.metadata = contract.getMetadata(); + yamlContract.priority = contract.getPriority(); request(contract, yamlContract); response(yamlContract, contract); input(contract, yamlContract); diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/converter/DslToYamlContractConverterSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/converter/DslToYamlContractConverterSpec.groovy index ef96240c38..58f3fe091f 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/converter/DslToYamlContractConverterSpec.groovy +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/converter/DslToYamlContractConverterSpec.groovy @@ -595,4 +595,77 @@ class DslToYamlContractConverterSpec extends Specification { type: YamlContract.TestMatcherType.by_null) ] } + + def "should convert rest DSL to YAML with save priority property"() { + given: + List contracts = [Contract.make { + priority (1) + name "Account creating without sign" + request { + method POST() + urlPath("/account") + headers { + contentType(applicationJson()) + header("userId", anyNonBlankString()) + header("sign", "") + } + body( + "number": anyNonBlankString(), + "currency": "USD", + "owner": "owner" + ) + } + response { + status CREATED() + headers { + contentType(applicationJson()) + } + body( + "id": anyNonBlankString(), + "number": "number", + "currency": "USD", + "owner": "owner", + "balance": 0 + ) + } + }] + when: + Collection yamlContracts = converter.convertTo(contracts) + then: + yamlContracts.size() == 1 + YamlContract yamlContract = yamlContracts.first() + yamlContract.request.method == 'POST' + yamlContract.request.urlPath == '/account' + yamlContract.request.matchers.headers == [ + new YamlContract.KeyValueMatcher( + key: "Content-Type", regex: "application/json.*", regexType: YamlContract.RegexType.as_string), + new YamlContract.KeyValueMatcher( + key: "userId", regex: "^\\s*\\S[\\S\\s]*", regexType: YamlContract.RegexType.as_string) + ] + yamlContract.request.matchers.body == [ + new YamlContract.BodyStubMatcher( + path: "\$.['number']", + type: "by_regex", + value: "^\\s*\\S[\\S\\s]*", + regexType: 'as_string' + ) + ] + yamlContract.response.status == 201 + yamlContract.response.headers == [ + "Content-Type": "application/json" + ] + yamlContract.response.matchers.headers == [ + new YamlContract.TestHeaderMatcher( + key: "Content-Type", regex: "application/json.*", regexType: YamlContract.RegexType.as_string) + ] + yamlContract.response.matchers.body == [ + new YamlContract.BodyTestMatcher( + path: "\$.['id']", + type: "by_regex", + value: "^\\s*\\S[\\S\\s]*", + regexType: "as_string" + ) + ] + yamlContract.priority == 1 + } }