From 7122e3006ed05d4622edd35a72d573ff7b44526d Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Thu, 3 Sep 2015 00:46:48 +0200 Subject: [PATCH] Fixed the functional tests --- .../accurest/dsl/WireMockGroovyDslSpec.groovy | 99 ++++++++++--------- .../plugin/BasicFunctionalSpec.groovy | 42 ++++---- .../accurest/util/AssertionUtil.groovy | 12 +++ build.gradle | 11 ++- settings.gradle | 2 +- 5 files changed, 94 insertions(+), 72 deletions(-) create mode 100644 accurest-testing-utils/src/main/groovy/io/codearte/accurest/util/AssertionUtil.groovy diff --git a/accurest-core/src/test/groovy/io/codearte/accurest/dsl/WireMockGroovyDslSpec.groovy b/accurest-core/src/test/groovy/io/codearte/accurest/dsl/WireMockGroovyDslSpec.groovy index 3356c1a7c9..548f309b00 100755 --- a/accurest-core/src/test/groovy/io/codearte/accurest/dsl/WireMockGroovyDslSpec.groovy +++ b/accurest-core/src/test/groovy/io/codearte/accurest/dsl/WireMockGroovyDslSpec.groovy @@ -1,7 +1,8 @@ package io.codearte.accurest.dsl + import groovy.json.JsonBuilder import groovy.json.JsonSlurper -import org.skyscreamer.jsonassert.JSONAssert +import io.codearte.accurest.util.AssertionUtil import spock.lang.Issue class WireMockGroovyDslSpec extends WireMockSpec { @@ -35,7 +36,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: String wireMockStub = new WireMockStubStrategy(groovyDsl).toWireMockClientStub() then: - JSONAssert.assertEquals(''' + AssertionUtil.assertThatJsonsAreEqual(''' { "request" : { "urlPattern" : "/[0-9]{2}", @@ -49,7 +50,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { } } } - ''', wireMockStub, false) + ''', wireMockStub) and: stubMappingIsValidWireMockStub(wireMockStub) } @@ -80,7 +81,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: String wireMockStub = new WireMockStubStrategy(groovyDsl).toWireMockClientStub() then: - JSONAssert.assertEquals(''' + AssertionUtil.assertThatJsonsAreEqual(''' { "request" : { "url" : "/ingredients", @@ -96,7 +97,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { "body" : "{\\"ingredients\\":[{\\"type\\":\\"MALT\\",\\"quantity\\":100},{\\"type\\":\\"WATER\\",\\"quantity\\":200},{\\"type\\":\\"HOP\\",\\"quantity\\":300},{\\"type\\":\\"YIEST\\",\\"quantity\\":400}]}" } } -''', wireMockStub, false) +''', wireMockStub) and: stubMappingIsValidWireMockStub(wireMockStub) } @@ -128,7 +129,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: String wireMockStub = new WireMockStubStrategy(groovyDsl).toWireMockClientStub() then: - JSONAssert.assertEquals(''' + AssertionUtil.assertThatJsonsAreEqual(''' { "request": { "method": "POST", @@ -149,7 +150,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { "body": "{\\"paymentId\\":\\"4\\",\\"foundExistingPayment\\":false}" } } -''', wireMockStub, false) +''', wireMockStub) and: stubMappingIsValidWireMockStub(wireMockStub) } @@ -180,7 +181,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: String wireMockStub = new WireMockStubStrategy(groovyDsl).toWireMockClientStub() then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request" : { "urlPattern" : "/[0-9]{2}", @@ -194,7 +195,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { } } } -'''), wireMockStub, false) +'''), wireMockStub) and: stubMappingIsValidWireMockStub(wireMockStub) } @@ -227,7 +228,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: String wireMockStub = new WireMockStubStrategy(groovyDsl).toWireMockClientStub() then: - JSONAssert.assertEquals(''' + AssertionUtil.assertThatJsonsAreEqual(''' { "request" : { "urlPattern" : "/[0-9]{2}", @@ -244,7 +245,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { } } } -''', wireMockStub, false) +''', wireMockStub) and: stubMappingIsValidWireMockStub(wireMockStub) } @@ -275,7 +276,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: String wireMockStub = new WireMockStubStrategy(groovyDsl).toWireMockClientStub() then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request" : { "urlPattern" : "/[0-9]{2}", @@ -294,7 +295,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { "status" : 200 } } - '''), wireMockStub, false) + '''), wireMockStub) and: stubMappingIsValidWireMockStub(wireMockStub) } @@ -321,7 +322,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: String json = toWireMockClientJsonStub(groovyDsl) then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request" : { "url" : "/users", @@ -339,7 +340,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { "status" : 200 } } - '''), json, false) + '''), json) and: stubMappingIsValidWireMockStub(json) } @@ -364,7 +365,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: String json = toWireMockClientJsonStub(groovyDsl) then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request": { "method": "GET", @@ -384,7 +385,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { "status": 200 } } - '''), json, false) + '''), json) and: stubMappingIsValidWireMockStub(json) } @@ -406,7 +407,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: String json = toWireMockClientJsonStub(groovyDsl) then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request": { "method": "GET", @@ -421,7 +422,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { "status": 200 } } - '''), json, false) + '''), json) and: stubMappingIsValidWireMockStub(json) } @@ -443,7 +444,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: String json = toWireMockClientJsonStub(groovyDsl) then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request": { "method": "GET", @@ -454,7 +455,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { "body":"Jozo<test>" } } - '''), json, false) + '''), json) and: stubMappingIsValidWireMockStub(json) } @@ -474,7 +475,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: String json = toWireMockClientJsonStub(groovyDsl) then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request": { "method": "GET", @@ -489,7 +490,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { "status": 200 } } - '''), json, false) + '''), json) and: stubMappingIsValidWireMockStub(json) } @@ -511,7 +512,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: String json = toWireMockClientJsonStub(groovyDsl) then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request": { "method": "GET", @@ -526,7 +527,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { "status": 200 } } - '''), json, false) + '''), json) and: stubMappingIsValidWireMockStub(json) } @@ -559,7 +560,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: String wireMockStub = new WireMockStubStrategy(groovyDsl).toWireMockClientStub() then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request" : { "urlPattern" : "/[0-9]{2}", @@ -576,7 +577,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { } } } -'''), wireMockStub, false) +'''), wireMockStub) and: stubMappingIsValidWireMockStub(wireMockStub) } @@ -614,7 +615,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: String wireMockStub = new WireMockStubStrategy(groovyDsl).toWireMockClientStub() then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request" : { "url" : "/fraudcheck", @@ -638,7 +639,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { } } } -'''), wireMockStub, false) +'''), wireMockStub) and: stubMappingIsValidWireMockStub(wireMockStub) } @@ -668,7 +669,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: def json = toWireMockClientJsonStub(groovyDsl) then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request": { "method": "GET", @@ -704,7 +705,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { "status": 200, } } - '''), json, false) + '''), json) and: stubMappingIsValidWireMockStub(json) } @@ -723,7 +724,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: def json = toWireMockClientJsonStub(groovyDsl) then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request": { "method": "GET", @@ -733,7 +734,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { "status": 200, } } - '''), json, false) + '''), json) and: stubMappingIsValidWireMockStub(json) } @@ -752,7 +753,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: def json = toWireMockClientJsonStub(groovyDsl) then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request": { "method": "GET", @@ -762,7 +763,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { "status": 200, } } - '''), json, false) + '''), json) and: stubMappingIsValidWireMockStub(json) } @@ -898,7 +899,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: def json = toWireMockClientJsonStub(groovyDsl) then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request": { "method": "GET", @@ -916,7 +917,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { "status": 200, } } - '''), json, false) + '''), json) and: stubMappingIsValidWireMockStub(json) } @@ -962,7 +963,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: String wireMockStub = new WireMockStubStrategy(groovyDsl).toWireMockClientStub() then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request" : { "urlPattern" : "/[0-9]{2}", @@ -993,7 +994,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { } } } - '''), wireMockStub, false) + '''), wireMockStub) } def 'should use regexp matches when request body match is defined using a map with a pattern'() { @@ -1026,7 +1027,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: def json = toWireMockClientJsonStub(groovyDsl) then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request" : { "url" : "/reissue-payment-order", @@ -1053,7 +1054,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { } } } - '''), json, false) + '''), json) } def "should generate stub for empty body"() { @@ -1071,7 +1072,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: def json = toWireMockClientJsonStub(groovyDsl) then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request": { "method": "POST", @@ -1086,7 +1087,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { "status": 406 } } -'''), json, false) +'''), json) } def "should generate stub with priority"() { @@ -1104,7 +1105,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: def json = toWireMockClientJsonStub(groovyDsl) then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "priority": 9, "request": { @@ -1115,7 +1116,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { "status": 406 } } - '''), json, false) + '''), json) } @Issue("#127") @@ -1135,7 +1136,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: String wireMockStub = new WireMockStubStrategy(groovyDsl).toWireMockClientStub() then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request" : { "method" : "POST", @@ -1147,7 +1148,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { "status" : 200 } } - '''), wireMockStub, false) + '''), wireMockStub) and: stubMappingIsValidWireMockStub(wireMockStub) } @@ -1169,7 +1170,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { when: String wireMockStub = new WireMockStubStrategy(groovyDsl).toWireMockClientStub() then: - JSONAssert.assertEquals((''' + AssertionUtil.assertThatJsonsAreEqual((''' { "request": { "method": "POST", @@ -1183,7 +1184,7 @@ class WireMockGroovyDslSpec extends WireMockSpec { "status": 200 } } - '''), wireMockStub, false) + '''), wireMockStub) and: stubMappingIsValidWireMockStub(wireMockStub) } diff --git a/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/BasicFunctionalSpec.groovy b/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/BasicFunctionalSpec.groovy index 5b101daa03..a54d20308e 100755 --- a/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/BasicFunctionalSpec.groovy +++ b/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/BasicFunctionalSpec.groovy @@ -1,6 +1,6 @@ package io.codearte.accurest.plugin -import groovy.json.JsonSlurper +import io.codearte.accurest.util.AssertionUtil import nebula.test.IntegrationSpec import spock.lang.Stepwise @@ -41,26 +41,26 @@ class BasicFunctionalSpec extends IntegrationSpec { runTasksSuccessfully('generateWireMockClientStubs') then: def generatedClientJsonStub = file(GENERATED_CLIENT_JSON_STUB).text - new JsonSlurper().parseText(generatedClientJsonStub) == new JsonSlurper().parseText(""" -{ - "priority": 2, - "request": { - "method": "PUT", - "headers": { - "Content-Type": { - "equalTo": "application/json" - } - }, - "url": "/api/12", - "bodyPatterns": [ - { "equalToJson": "[{\\"text\\":\\"Gonna see you at Warsaw\\"}]" } - ] - }, - "response": { - "status": 200 - } -} -""") + AssertionUtil.assertThatJsonsAreEqual(""" + { + "request" : { + "url" : "/api/12", + "method" : "PUT", + "bodyPatterns" : [ { + "matchesJsonPath" : "\$[*][?(@.text == 'Gonna see you at Warsaw')]" + } ], + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + } + }, + "response" : { + "status" : 200 + }, + "priority" : 2 + } + """, generatedClientJsonStub) } def "tasks should be up-to-date when appropriate"() { diff --git a/accurest-testing-utils/src/main/groovy/io/codearte/accurest/util/AssertionUtil.groovy b/accurest-testing-utils/src/main/groovy/io/codearte/accurest/util/AssertionUtil.groovy new file mode 100644 index 0000000000..4c632a4de3 --- /dev/null +++ b/accurest-testing-utils/src/main/groovy/io/codearte/accurest/util/AssertionUtil.groovy @@ -0,0 +1,12 @@ +package io.codearte.accurest.util + +import org.skyscreamer.jsonassert.JSONAssert + +class AssertionUtil { + + private static boolean NON_STRICT = false + + public static void assertThatJsonsAreEqual(String expected, String actual) { + JSONAssert.assertEquals(expected, actual, NON_STRICT) + } +} diff --git a/build.gradle b/build.gradle index ed8eb470e7..7f78c6ad8a 100644 --- a/build.gradle +++ b/build.gradle @@ -74,7 +74,15 @@ project(':accurest-core') { compile 'com.blogspot.toomuchcoding:wiremock:0.0.1' testCompile 'cglib:cglib-nodep:2.2' testCompile 'org.objenesis:objenesis:2.1' - testCompile 'org.skyscreamer:jsonassert:1.2.3' + testCompile project(':accurest-testing-utils') + } + +} + +project(':accurest-testing-utils') { + + dependencies { + compile 'org.skyscreamer:jsonassert:1.2.3' } } @@ -99,6 +107,7 @@ project(':accurest-gradle-plugin') { testCompile('com.netflix.nebula:nebula-test:2.2.1') { exclude(group: 'org.spockframework') } + testCompile project(':accurest-testing-utils') } test { diff --git a/settings.gradle b/settings.gradle index 148580177b..7a36841ba8 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1,3 @@ -include "accurest-core", "accurest-gradle-plugin", 'accurest-converters' +include "accurest-core", "accurest-gradle-plugin", 'accurest-converters', 'accurest-testing-utils' rootProject.name = "accurest"