[#5] Adding assertions of patterns

This commit is contained in:
Marcin Grzejszczak
2015-05-12 12:20:25 +02:00
parent 40bce485df
commit f581bb561f
4 changed files with 25 additions and 5 deletions

View File

@@ -4,6 +4,7 @@ import groovy.json.JsonOutput
import groovy.json.JsonSlurper
import groovy.xml.XmlUtil
import io.codearte.accurest.dsl.GroovyDsl
import nl.flotsam.xeger.Xeger
import static org.apache.commons.lang3.StringEscapeUtils.escapeJava
@@ -17,11 +18,12 @@ class WiremockToDslConverter {
def request = wiremockStub.request
def response = wiremockStub.response
def bodyPatterns = request.bodyPatterns
String urlPattern = request.urlPattern
return """\
request {
${request.method ? "method \"\"\"$request.method\"\"\"" : ""}
${request.url ? "url \"\"\"$request.url\"\"\"" : ""}
${request.urlPattern ? "url \$(client(regex('${escapeJava(request.urlPattern)}')), server(''))" : ""}
${urlPattern ? "url \$(client(regex('${escapeJava(urlPattern)}')), server('${new Xeger(escapeJava(urlPattern)).generate()}'))" : ""}
${request.urlPath ? "url \"\"\"$request.urlPath\"\"\"" : ""}
${
request.headers ? """headers {
@@ -38,7 +40,7 @@ class WiremockToDslConverter {
}
${bodyPatterns?.equalTo?.every { it } ? "body('''${bodyPatterns.equalTo[0]}''')" : ''}
${bodyPatterns?.equalToJson?.every { it } ? "body('''${bodyPatterns.equalToJson[0]}''')" : ''}
${bodyPatterns?.matches?.every { it } ? "body \$(client(regex('${escapeJava(bodyPatterns.matches[0])}')), server(''))" : ""}
${bodyPatterns?.matches?.every { it } ? "body \$(client(regex('${escapeJava(bodyPatterns.matches[0])}')), server('${new Xeger(escapeJava(bodyPatterns.matches[0])).generate()}'))" : ""}
}
response {
${response.status ? "status $response.status" : ""}

View File

@@ -102,7 +102,7 @@ class WiremockToDslConverterSpec extends Specification {
GroovyDsl expectedGroovyDsl = GroovyDsl.make {
request {
method 'DELETE'
url $(client(~/\/credit-card-verification-data\/[0-9]+/), server(''))
url $(client(~/\/credit-card-verification-data\/[0-9]+/), server('/credit-card-verification-data/1'))
headers {
header('Content-Type': 'application/vnd.mymoid-adapter.v2+json; charset=UTF-8')
}
@@ -361,7 +361,7 @@ class WiremockToDslConverterSpec extends Specification {
request {
method 'POST'
url '/test'
body $(client(~/[0-9]{5}/), server(''))
body $(client(~/[0-9]{5}/), server('12345'))
}
response {
status 200
@@ -482,7 +482,7 @@ class WiremockToDslConverterSpec extends Specification {
request {
method 'POST'
url '/test'
body $(client(~/[0-9]{2}/), server(''))
body $(client(~/[0-9]{2}/), server('12'))
}
response {
status 200

View File

@@ -47,10 +47,12 @@ class Common {
}
DslProperty value(ClientDslProperty client, ServerDslProperty server) {
assertThatSidesMatch(client.clientValue, server.serverValue)
return new DslProperty(client.clientValue, server.serverValue)
}
DslProperty value(ServerDslProperty server, ClientDslProperty client) {
assertThatSidesMatch(client.clientValue, server.serverValue)
return new DslProperty(client.clientValue, server.serverValue)
}
@@ -77,4 +79,16 @@ class Common {
ServerDslProperty server(Object serverValue) {
return new ServerDslProperty(serverValue)
}
void assertThatSidesMatch(Pattern firstSide, Object secondSide) {
assert secondSide ==~ firstSide
}
void assertThatSidesMatch(Object firstSide, Pattern secondSide) {
assert secondSide ==~ firstSide
}
void assertThatSidesMatch(Object firstSide, Object secondSide) {
// do nothing
}
}

View File

@@ -47,6 +47,9 @@ subprojects {
repositories {
mavenLocal()
mavenCentral()
maven {
url "https://jitpack.io"
}
}
//Dependencies in all subprojects - http://solidsoft.wordpress.com/2014/11/13/gradle-tricks-display-dependencies-for-all-subprojects-in-multi-project-build/
@@ -98,6 +101,7 @@ project(':accurest-converters') {
compile project(':accurest-core')
compile 'org.apache.commons:commons-lang3:3.3.2'
compile 'commons-io:commons-io:[2.4,)'
compile 'com.github.marcingrzejszczak:xeger:20130128'
testCompile 'com.github.tomakehurst:wiremock:1.53'
}
}