[#5] Adding assertions of patterns
This commit is contained in:
@@ -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" : ""}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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'
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user