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 5966383fe4..74fc841024 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 {