From 736ae1b79063de3840d852e72f21a5c1f31c1a89 Mon Sep 17 00:00:00 2001 From: Jakub Kubrynski Date: Tue, 24 Feb 2015 11:46:26 +0100 Subject: [PATCH] Headers refactoring --- .../accurest/builder/SpockMethodBodyBuilder.groovy | 10 ++++++---- .../accurest/dsl/BaseWiremockStubStrategy.groovy | 4 ++-- .../io/coderate/accurest/dsl/internal/Headers.groovy | 12 +++++++++--- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/accurest-core/src/main/groovy/io/coderate/accurest/builder/SpockMethodBodyBuilder.groovy b/accurest-core/src/main/groovy/io/coderate/accurest/builder/SpockMethodBodyBuilder.groovy index 2b2548bd11..fc7abc910f 100644 --- a/accurest-core/src/main/groovy/io/coderate/accurest/builder/SpockMethodBodyBuilder.groovy +++ b/accurest-core/src/main/groovy/io/coderate/accurest/builder/SpockMethodBodyBuilder.groovy @@ -2,6 +2,8 @@ package io.coderate.accurest.builder import groovy.json.JsonOutput import groovy.transform.PackageScope import io.coderate.accurest.dsl.GroovyDsl +import io.coderate.accurest.dsl.internal.Header + /** * @author Jakub Kubrynski */ @@ -18,8 +20,8 @@ class SpockMethodBodyBuilder { blockBuilder.addLine('given:').startBlock() blockBuilder.addLine('def request = given()') blockBuilder.indent() - stubDefinition.request.headers.headers.collectEntries { [(it.name): it.serverValue] }.each { Map.Entry entry -> - blockBuilder.addLine(".header('${entry.key}', '${entry.value}')") + stubDefinition.request.headers?.collect { Header header -> + blockBuilder.addLine(".header('${header.name}', '${header.serverValue}')") } if (stubDefinition.request.body) { String matches = new JsonOutput().toJson(stubDefinition.request.body.serverValue) @@ -37,8 +39,8 @@ class SpockMethodBodyBuilder { blockBuilder.addLine('then:').startBlock() blockBuilder.addLine("response.statusCode == $stubDefinition.response.status.serverValue") - stubDefinition.response.headers?.headers?.collectEntries { [(it.name): it.serverValue] }?.each { Map.Entry entry -> - blockBuilder.addLine("response.header('$entry.key') == '$entry.value'") + stubDefinition.response.headers?.collect { Header header -> + blockBuilder.addLine("response.header('$header.name') == '$header.serverValue'") } if (stubDefinition.response.body) { blockBuilder.endBlock() diff --git a/accurest-core/src/main/groovy/io/coderate/accurest/dsl/BaseWiremockStubStrategy.groovy b/accurest-core/src/main/groovy/io/coderate/accurest/dsl/BaseWiremockStubStrategy.groovy index 3052e7efd4..5e89c3d3bc 100644 --- a/accurest-core/src/main/groovy/io/coderate/accurest/dsl/BaseWiremockStubStrategy.groovy +++ b/accurest-core/src/main/groovy/io/coderate/accurest/dsl/BaseWiremockStubStrategy.groovy @@ -12,7 +12,7 @@ abstract class BaseWiremockStubStrategy { if (!headers) { return null } - return headers.headers.collectEntries { Header entry -> + return headers.entries.collectEntries { Header entry -> parseHeader(entry.name, entry.clientValue) } } @@ -21,7 +21,7 @@ abstract class BaseWiremockStubStrategy { if (!headers) { return null } - return headers.headers.collectEntries { Header entry -> + return headers.entries.collectEntries { Header entry -> [(entry.name) : entry.clientValue] } } diff --git a/accurest-core/src/main/groovy/io/coderate/accurest/dsl/internal/Headers.groovy b/accurest-core/src/main/groovy/io/coderate/accurest/dsl/internal/Headers.groovy index 06e294e488..be6f90c66f 100644 --- a/accurest-core/src/main/groovy/io/coderate/accurest/dsl/internal/Headers.groovy +++ b/accurest-core/src/main/groovy/io/coderate/accurest/dsl/internal/Headers.groovy @@ -9,15 +9,21 @@ import groovy.transform.TypeChecked @TypeChecked class Headers { - Set
headers = [] + Set
entries = [] void header(Map singleHeader) { Map.Entry first = singleHeader.entrySet().first() - headers << new Header(first?.key, first?.value) + entries << new Header(first?.key, first?.value) } void header(String headerKey, Object headerValue) { - headers << new Header(headerKey, headerValue) + entries << new Header(headerKey, headerValue) + } + + void collect(Closure closure) { + entries?.each { + header -> closure(header) + } } }