Wiremock stubs with cookies + some tests

This commit is contained in:
Marcin Grzejszczak
2018-04-11 10:05:43 +07:00
committed by Alex Xandra Albert Sim
parent e7996e846e
commit a0641790a9
11 changed files with 71 additions and 13 deletions

View File

@@ -23,6 +23,7 @@ import com.github.tomakehurst.wiremock.matching.RequestPatternBuilder
import com.github.tomakehurst.wiremock.matching.StringValuePattern
import com.github.tomakehurst.wiremock.matching.UrlPattern
import groovy.json.JsonOutput
import groovy.transform.CompileDynamic
import groovy.transform.PackageScope
import groovy.transform.TypeChecked
import groovy.transform.TypeCheckingMode
@@ -72,6 +73,7 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy {
}
RequestPatternBuilder requestPatternBuilder = appendMethodAndUrl()
appendHeaders(requestPatternBuilder)
appendCookies(requestPatternBuilder)
appendQueryParameters(requestPatternBuilder)
appendBody(requestPatternBuilder)
appendMultipart(requestPatternBuilder)
@@ -148,6 +150,15 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy {
}
}
private void appendCookies(RequestPatternBuilder requestPattern) {
if(!request.cookies) {
return
}
request.cookies.entries.each {
requestPattern.withCookie(it.key, convertToValuePattern(it.clientValue))
}
}
private UrlPattern urlPattern() {
Object urlPath = urlPathOrUrlIfQueryPresent()
if (urlPath) {
@@ -293,6 +304,7 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy {
return containsPattern(map.entrySet())
}
@CompileDynamic
private boolean containsPattern(Collection collection) {
return collection.collect(this.&containsPattern).inject('') { a, b -> a || b }
}

View File

@@ -1750,6 +1750,9 @@ class WireMockGroovyDslSpec extends Specification implements WireMockStubVerifie
header(authorization(), "secret")
header(authorization(), "secret2")
}
cookies {
cookie("foo", "bar")
}
body(foo: "bar", baz: 5)
}
response {
@@ -1785,6 +1788,11 @@ class WireMockGroovyDslSpec extends Specification implements WireMockStubVerifie
"equalTo" : "secret2"
}
},
"cookies" : {
"foo" : {
"equalTo" : "bar"
}
},
"queryParameters" : {
"foo" : {
"equalTo" : "bar2"
@@ -2017,6 +2025,7 @@ class WireMockGroovyDslSpec extends Specification implements WireMockStubVerifie
RequestEntity.post(URI.create("http://localhost:" + port + "/api/v1/xxxx?foo=bar&foo=bar2"))
.header("Authorization", "secret")
.header("Authorization", "secret2")
.header("Cookie", "foo=bar")
.body("{\"foo\":\"bar\",\"baz\":5}"), String.class)
}
}