From 622aef7bd24eb576e8bf9d81de3d24a63e36e49a Mon Sep 17 00:00:00 2001 From: Arseny Feytullaev Date: Thu, 2 Mar 2023 13:19:17 +0300 Subject: [PATCH] Fixes gh-1873 (#1874) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Фейтуллаев Арсений Валерьевич --- .../verifier/converter/ContractsToYaml.java | 4 ++-- .../DslToYamlContractConverterSpec.groovy | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) 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 e61530ee4d..3b31e22139 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 @@ -275,13 +275,13 @@ class ContractsToYaml { } private void mapRequestHeaders(YamlContract.Request yamlContractRequest, Request request) { - yamlContractRequest.headers = request.getHeaders().asMap((headerName, prop) -> { + yamlContractRequest.headers = request.getHeaders() != null ? request.getHeaders().asMap((headerName, prop) -> { Object testSideValue = MapConverter.getTestSideValues(prop); if (testSideValue instanceof ExecutionProperty) { return MapConverter.getStubSideValuesForNonBody(prop).toString(); } return testSideValue.toString(); - }); + }) : null; } private void mapRequestMatchersQueryParameters(YamlContract.Request yamlContractRequest, Url requestUrl) { 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 58f3fe091f..d521dce2e5 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 @@ -50,6 +50,27 @@ class DslToYamlContractConverterSpec extends Specification { YamlContractConverter converter = new YamlContractConverter() + def "should convert rest DSL without request headers to YAML"() { + given: + List contracts = [Contract.make { + request { + method 'GET' + urlPath '/get' + } + response { + status(OK()) + } + }] + when: + Collection yamlContracts = converter.convertTo(contracts) + then: + yamlContracts.size() == 1 + YamlContract yamlContract = yamlContracts.first() + yamlContract.request.method == "GET" + yamlContract.request.urlPath == "/get" + yamlContract.request.headers == null + } + def "should convert rest DSL to YAML"() { given: List contracts = [Contract.make {