From d2a6044b3635300463e2f0bf6c9920de1aac43d5 Mon Sep 17 00:00:00 2001 From: Olga Maciaszek-Sharma Date: Fri, 19 Feb 2016 16:15:17 +0100 Subject: [PATCH] Raised JsonAssert version. Switched to assertThatJson() method. Fixed some tests. --- .../accurest/SingleTestGenerator.groovy | 3 +- .../accurest/builder/MethodBodyBuilder.groovy | 2 +- .../accurest/SingleTestGeneratorSpec.groovy | 4 +- .../JaxRsClientSpockMethodBuilderSpec.groovy | 48 ++-- .../MockMvcJunitMethodBuilderSpec.groovy | 63 ++--- .../MockMvcSpockMethodBuilderSpec.groovy | 267 +++++++++--------- gradle.properties | 2 +- 7 files changed, 196 insertions(+), 193 deletions(-) diff --git a/accurest-core/src/main/groovy/io/codearte/accurest/SingleTestGenerator.groovy b/accurest-core/src/main/groovy/io/codearte/accurest/SingleTestGenerator.groovy index 309173138f..ba23ee1bdb 100644 --- a/accurest-core/src/main/groovy/io/codearte/accurest/SingleTestGenerator.groovy +++ b/accurest-core/src/main/groovy/io/codearte/accurest/SingleTestGenerator.groovy @@ -15,7 +15,8 @@ import static io.codearte.accurest.util.NamesUtil.capitalize @Slf4j class SingleTestGenerator { - private static final String JSON_ASSERT_STATIC_IMPORT = 'com.blogspot.toomuchcoding.jsonassert.JsonAssertion.assertThat' + private static + final String JSON_ASSERT_STATIC_IMPORT = 'com.blogspot.toomuchcoding.jsonassert.JsonAssertion.assertThatJson' private static final String JSON_ASSERT_CLASS = 'com.blogspot.toomuchcoding.jsonassert.JsonAssertion' private final AccurestConfigProperties configProperties diff --git a/accurest-core/src/main/groovy/io/codearte/accurest/builder/MethodBodyBuilder.groovy b/accurest-core/src/main/groovy/io/codearte/accurest/builder/MethodBodyBuilder.groovy index 3f92a12f5e..1702962476 100644 --- a/accurest-core/src/main/groovy/io/codearte/accurest/builder/MethodBodyBuilder.groovy +++ b/accurest-core/src/main/groovy/io/codearte/accurest/builder/MethodBodyBuilder.groovy @@ -152,7 +152,7 @@ abstract class MethodBodyBuilder { appendJsonPath(bb, getResponseAsString()) JsonPaths jsonPaths = JsonToJsonPathsConverter.transformToJsonPathWithTestsSideValues(responseBody) jsonPaths.each { - bb.addLine("assertThat(parsedJson)" + it.method()) + bb.addLine("assertThatJson(parsedJson)" + it.method()) addColonIfRequired(bb) } processBodyElement(bb, "", responseBody) diff --git a/accurest-core/src/test/groovy/io/codearte/accurest/SingleTestGeneratorSpec.groovy b/accurest-core/src/test/groovy/io/codearte/accurest/SingleTestGeneratorSpec.groovy index fbfa267ec4..7a9d560c9b 100644 --- a/accurest-core/src/test/groovy/io/codearte/accurest/SingleTestGeneratorSpec.groovy +++ b/accurest-core/src/test/groovy/io/codearte/accurest/SingleTestGeneratorSpec.groovy @@ -18,12 +18,12 @@ class SingleTestGeneratorSpec extends Specification { static List jUnitClassStrings = ['package test;', 'import com.jayway.jsonpath.DocumentContext;', 'import com.jayway.jsonpath.JsonPath;', 'import org.junit.FixMethodOrder;', 'import org.junit.Ignore;', 'import org.junit.Test;', 'import org.junit.runners.MethodSorters;', - 'import static com.blogspot.toomuchcoding.jsonassert.JsonAssertion.assertThat;', 'import static com.jayway.restassured.module.mockmvc.RestAssuredMockMvc.*;', + 'import static com.blogspot.toomuchcoding.jsonassert.JsonAssertion.assertThatJson;', 'import static com.jayway.restassured.module.mockmvc.RestAssuredMockMvc.*;', '@FixMethodOrder(MethodSorters.NAME_ASCENDING)', '@Test', '@Ignore'] static List spockClassStrings = ['package test', 'import com.jayway.jsonpath.DocumentContext', 'import com.jayway.jsonpath.JsonPath', 'import spock.lang.Ignore', 'import spock.lang.Specification', 'import spock.lang.Stepwise', - 'import static com.blogspot.toomuchcoding.jsonassert.JsonAssertion.assertThat', 'import static com.jayway.restassured.module.mockmvc.RestAssuredMockMvc.*', + 'import static com.blogspot.toomuchcoding.jsonassert.JsonAssertion.assertThatJson', 'import static com.jayway.restassured.module.mockmvc.RestAssuredMockMvc.*', '@Stepwise', '@Ignore'] def setup() { diff --git a/accurest-core/src/test/groovy/io/codearte/accurest/builder/JaxRsClientSpockMethodBuilderSpec.groovy b/accurest-core/src/test/groovy/io/codearte/accurest/builder/JaxRsClientSpockMethodBuilderSpec.groovy index 9662646416..81cfcb2755 100644 --- a/accurest-core/src/test/groovy/io/codearte/accurest/builder/JaxRsClientSpockMethodBuilderSpec.groovy +++ b/accurest-core/src/test/groovy/io/codearte/accurest/builder/JaxRsClientSpockMethodBuilderSpec.groovy @@ -29,8 +29,8 @@ class JaxRsClientSpockMethodBuilderSpec extends Specification implements WireMoc when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property1").isEqualTo("a")""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property2").isEqualTo("b")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").isEqualTo("b")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -57,9 +57,9 @@ class JaxRsClientSpockMethodBuilderSpec extends Specification implements WireMoc when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property3").isEqualTo(false)""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property2").isNull()""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property1").isEqualTo("true")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property3").isEqualTo(false)""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").isNull()""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("true")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -88,9 +88,9 @@ class JaxRsClientSpockMethodBuilderSpec extends Specification implements WireMoc when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property1").isEqualTo("a")""") - blockBuilder.toString().contains("""assertThat(parsedJson).array("property2").contains("a").isEqualTo("sth")""") - blockBuilder.toString().contains("""assertThat(parsedJson).array("property2").contains("b").isEqualTo("sthElse")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property2").contains("a").isEqualTo("sth")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property2").contains("b").isEqualTo("sthElse")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -168,8 +168,8 @@ class JaxRsClientSpockMethodBuilderSpec extends Specification implements WireMoc when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).array().contains("property1").isEqualTo("a")""") - blockBuilder.toString().contains("""assertThat(parsedJson).array().contains("property2").isEqualTo("b")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array().contains("property1").isEqualTo("a")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array().contains("property2").isEqualTo("b")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -196,8 +196,8 @@ class JaxRsClientSpockMethodBuilderSpec extends Specification implements WireMoc when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).array("property1").contains("property2").isEqualTo("test1")""") - blockBuilder.toString().contains("""assertThat(parsedJson).array("property1").contains("property3").isEqualTo("test2")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property1").contains("property2").isEqualTo("test1")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property1").contains("property3").isEqualTo("test2")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -224,8 +224,8 @@ class JaxRsClientSpockMethodBuilderSpec extends Specification implements WireMoc when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property2").field("property3").isEqualTo("b")""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property1").isEqualTo("a")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").field("property3").isEqualTo("b")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -258,15 +258,15 @@ class JaxRsClientSpockMethodBuilderSpec extends Specification implements WireMoc when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property2").matches("[0-9]{3}")""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property1").isEqualTo("a")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").matches("[0-9]{3}")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } def "should generate regex assertions for string objects in response body"() { given: - GroovyDsl contractDsl = GroovyDsl.make { + GroovyDsl contractDsl = GroovyDsl.make { request { method "GET" url "test" @@ -286,8 +286,8 @@ class JaxRsClientSpockMethodBuilderSpec extends Specification implements WireMoc when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property2").matches("[0-9]{3}")""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property1").isEqualTo("a")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").matches("[0-9]{3}")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -388,8 +388,8 @@ class JaxRsClientSpockMethodBuilderSpec extends Specification implements WireMoc spockTest.contains("queryParam('age', '99'") spockTest.contains("queryParam('name', 'Denis.Stepanov'") spockTest.contains("queryParam('email', 'bob@email.com'") - spockTest.contains("""assertThat(parsedJson).field("property1").isEqualTo("a")""") - spockTest.contains("""assertThat(parsedJson).field("property2").isEqualTo("b")""") + spockTest.contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""") + spockTest.contains("""assertThatJson(parsedJson).field("property2").isEqualTo("b")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -400,7 +400,7 @@ class JaxRsClientSpockMethodBuilderSpec extends Specification implements WireMoc GroovyDsl contractDsl = GroovyDsl.make { request { method 'GET' - url($(stub(regex('/foo/[0-9]+')), test('/foo/123456'))){ + url($(stub(regex('/foo/[0-9]+')), test('/foo/123456'))) { queryParameters { parameter 'limit': $(client(equalTo("20")), server(equalTo("10"))) parameter 'offset': $(client(containing("20")), server(equalTo("20"))) @@ -439,8 +439,8 @@ class JaxRsClientSpockMethodBuilderSpec extends Specification implements WireMoc spockTest.contains("queryParam('age', '99'") spockTest.contains("queryParam('name', 'Denis.Stepanov'") spockTest.contains("queryParam('email', 'bob@email.com'") - spockTest.contains("""assertThat(parsedJson).field("property1").isEqualTo("a")""") - spockTest.contains("""assertThat(parsedJson).field("property2").isEqualTo("b")""") + spockTest.contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""") + spockTest.contains("""assertThatJson(parsedJson).field("property2").isEqualTo("b")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } diff --git a/accurest-core/src/test/groovy/io/codearte/accurest/builder/MockMvcJunitMethodBuilderSpec.groovy b/accurest-core/src/test/groovy/io/codearte/accurest/builder/MockMvcJunitMethodBuilderSpec.groovy index 7e78ab2475..f3bd466005 100644 --- a/accurest-core/src/test/groovy/io/codearte/accurest/builder/MockMvcJunitMethodBuilderSpec.groovy +++ b/accurest-core/src/test/groovy/io/codearte/accurest/builder/MockMvcJunitMethodBuilderSpec.groovy @@ -4,7 +4,7 @@ import io.codearte.accurest.dsl.GroovyDsl import io.codearte.accurest.dsl.WireMockStubStrategy import io.codearte.accurest.dsl.WireMockStubVerifier import io.codearte.accurest.file.Contract -import jdk.nashorn.internal.ir.annotations.Ignore +import spock.lang.Ignore import spock.lang.Issue import spock.lang.Specification import spock.lang.Unroll @@ -37,8 +37,8 @@ class MockMvcJunitMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains('assertThat(parsedJson).field("property1").isEqualTo("a");') - blockBuilder.toString().contains('assertThat(parsedJson).field("property2").isEqualTo("b");') + blockBuilder.toString().contains('assertThatJson(parsedJson).field("property1").isEqualTo("a");') + blockBuilder.toString().contains('assertThatJson(parsedJson).field("property2").isEqualTo("b");') and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -65,9 +65,9 @@ class MockMvcJunitMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property1").isEqualTo("true");""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property2").isNull();""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property3").isEqualTo(false);""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("true");""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").isNull();""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property3").isEqualTo(false);""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -96,9 +96,9 @@ class MockMvcJunitMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property1").isEqualTo("a");""") - blockBuilder.toString().contains("""assertThat(parsedJson).array("property2").contains("a").isEqualTo("sth");""") - blockBuilder.toString().contains("""assertThat(parsedJson).array("property2").contains("b").isEqualTo("sthElse");""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a");""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property2").contains("a").isEqualTo("sth");""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property2").contains("b").isEqualTo("sthElse");""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -176,8 +176,8 @@ class MockMvcJunitMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property").field(7).isEqualTo(0.0);""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property").field(14).isEqualTo(0.0);""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property").field(7).isEqualTo(0.0);""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property").field(14).isEqualTo(0.0);""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -205,8 +205,8 @@ class MockMvcJunitMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).array().contains("property2").isEqualTo("b");""") - blockBuilder.toString().contains("""assertThat(parsedJson).array().contains("property1").isEqualTo("a");""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array().contains("property2").isEqualTo("b");""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array().contains("property1").isEqualTo("a");""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -233,8 +233,8 @@ class MockMvcJunitMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).array("property1").contains("property2").isEqualTo("test1");""") - blockBuilder.toString().contains("""assertThat(parsedJson).array("property1").contains("property3").isEqualTo("test2");""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property1").contains("property2").isEqualTo("test1");""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property1").contains("property3").isEqualTo("test2");""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -261,8 +261,8 @@ class MockMvcJunitMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property2").field("property3").isEqualTo("b");""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property1").isEqualTo("a");""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").field("property3").isEqualTo("b");""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a");""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -295,8 +295,8 @@ class MockMvcJunitMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property2").matches("[0-9]{3}");""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property1").isEqualTo("a");""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").matches("[0-9]{3}");""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a");""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -324,8 +324,8 @@ class MockMvcJunitMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property2").matches("[0-9]{3}");""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property1").isEqualTo("a");""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").matches("[0-9]{3}");""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a");""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -351,7 +351,7 @@ class MockMvcJunitMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property").matches("\\\\d+");""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property").matches("\\\\d+");""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -393,8 +393,8 @@ class MockMvcJunitMethodBuilderSpec extends Specification implements WireMockStu def jUnitTest = blockBuilder.toString() then: jUnitTest.contains('get("/users?limit=10&offset=20&filter=email&sort=name&search=55&age=99&name=Denis.Stepanov&email=bob@email.com")') - jUnitTest.contains('assertThat(parsedJson).field("property1").isEqualTo("a")') - jUnitTest.contains('assertThat(parsedJson).field("property2").isEqualTo("b")') + jUnitTest.contains('assertThatJson(parsedJson).field("property1").isEqualTo("a")') + jUnitTest.contains('assertThatJson(parsedJson).field("property2").isEqualTo("b")') and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -437,8 +437,8 @@ class MockMvcJunitMethodBuilderSpec extends Specification implements WireMockStu def jUnitTest = blockBuilder.toString() then: jUnitTest.contains('get("/foo/123456?limit=10&offset=20&filter=email&sort=name&search=55&age=99&name=Denis.Stepanov&email=bob@email.com")') - jUnitTest.contains('assertThat(parsedJson).field("property1").isEqualTo("a")') - jUnitTest.contains('assertThat(parsedJson).field("property2").isEqualTo("b")') + jUnitTest.contains('assertThatJson(parsedJson).field("property1").isEqualTo("a")') + jUnitTest.contains('assertThatJson(parsedJson).field("property2").isEqualTo("b")') and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -591,8 +591,8 @@ class MockMvcJunitMethodBuilderSpec extends Specification implements WireMockStu builder.appendTo(blockBuilder) def jUnitTest = blockBuilder.toString() then: - jUnitTest.contains("""assertThat(parsedJson).array("errors").contains("property").isEqualTo("bank_account_number");""") - jUnitTest.contains("""assertThat(parsedJson).array("errors").contains("message").isEqualTo("incorrect_format");""") + jUnitTest.contains("""assertThatJson(parsedJson).array("errors").contains("property").isEqualTo("bank_account_number");""") + jUnitTest.contains("""assertThatJson(parsedJson).array("errors").contains("message").isEqualTo("incorrect_format");""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) @@ -659,7 +659,7 @@ class MockMvcJunitMethodBuilderSpec extends Specification implements WireMockStu builder.appendTo(blockBuilder) def jUnitTest = blockBuilder.toString() then: - jUnitTest.contains('''$[?(@.message =~ /User not found by email = \\\\[[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,4}\\\\]/)]''') + jUnitTest.contains('''assertThatJson(parsedJson).field("message").matches("User not found by email = \\\\\\\\[[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\\\\\.[a-zA-Z]{2,4}\\\\\\\\]");''') } @@ -674,7 +674,7 @@ class MockMvcJunitMethodBuilderSpec extends Specification implements WireMockStu def jUnitTest = blockBuilder.toString() then: jUnitTest.contains('\\"email\\":\\"abc@abc.com\\"') - jUnitTest.contains('assertThat(parsedJson).field("code").matches("(123123)?");') + jUnitTest.contains('assertThatJson(parsedJson).field("code").matches("(123123)?");') !jUnitTest.contains('''REGEXP''') !jUnitTest.contains('''OPTIONAL''') !jUnitTest.contains('''OptionalProperty''') @@ -940,8 +940,8 @@ World.'''""") } @Issue('180') - @Ignore //TODO: fix multiparts in JUnit + @Ignore def "should generate proper test code when having multipart parameters with named as map"() { given: GroovyDsl contractDsl = GroovyDsl.make { @@ -969,5 +969,4 @@ World.'''""") jUnitTest.contains('.multiPart') } - } diff --git a/accurest-core/src/test/groovy/io/codearte/accurest/builder/MockMvcSpockMethodBuilderSpec.groovy b/accurest-core/src/test/groovy/io/codearte/accurest/builder/MockMvcSpockMethodBuilderSpec.groovy index 56444a53ad..c88781b155 100644 --- a/accurest-core/src/test/groovy/io/codearte/accurest/builder/MockMvcSpockMethodBuilderSpec.groovy +++ b/accurest-core/src/test/groovy/io/codearte/accurest/builder/MockMvcSpockMethodBuilderSpec.groovy @@ -9,6 +9,7 @@ import spock.lang.Specification import spock.lang.Unroll import java.util.regex.Pattern + /** * @author Jakub Kubrynski */ @@ -34,8 +35,8 @@ class MockMvcSpockMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property1").isEqualTo("a")""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property2").isEqualTo("b")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").isEqualTo("b")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -62,9 +63,9 @@ class MockMvcSpockMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property1").isEqualTo("true")""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property2").isNull()""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property3").isEqualTo(false)""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("true")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").isNull()""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property3").isEqualTo(false)""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -93,9 +94,9 @@ class MockMvcSpockMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property1").isEqualTo("a")""") - blockBuilder.toString().contains("""assertThat(parsedJson).array("property2").contains("a").isEqualTo("sth")""") - blockBuilder.toString().contains("""assertThat(parsedJson).array("property2").contains("b").isEqualTo("sthElse")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property2").contains("a").isEqualTo("sth")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property2").contains("b").isEqualTo("sthElse")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -173,8 +174,8 @@ class MockMvcSpockMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property").field(7).isEqualTo(0.0)""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property").field(14).isEqualTo(0.0)""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property").field(7).isEqualTo(0.0)""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property").field(14).isEqualTo(0.0)""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -202,8 +203,8 @@ class MockMvcSpockMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).array().contains("property2").isEqualTo("b")""") - blockBuilder.toString().contains("""assertThat(parsedJson).array().contains("property1").isEqualTo("a")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array().contains("property2").isEqualTo("b")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array().contains("property1").isEqualTo("a")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -230,8 +231,8 @@ class MockMvcSpockMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).array("property1").contains("property2").isEqualTo("test1")""") - blockBuilder.toString().contains("""assertThat(parsedJson).array("property1").contains("property3").isEqualTo("test2")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property1").contains("property2").isEqualTo("test1")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property1").contains("property3").isEqualTo("test2")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -258,15 +259,15 @@ class MockMvcSpockMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property2").field("property3").isEqualTo("b")""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property1").isEqualTo("a")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").field("property3").isEqualTo("b")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } def "should generate regex assertions for map objects in response body"() { given: - GroovyDsl contractDsl = GroovyDsl.make { + GroovyDsl contractDsl = GroovyDsl.make { request { method "GET" url "test" @@ -292,38 +293,38 @@ class MockMvcSpockMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property2").matches("[0-9]{3}")""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property1").isEqualTo("a")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").matches("[0-9]{3}")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } def "should generate regex assertions for string objects in response body"() { given: - GroovyDsl contractDsl = GroovyDsl.make { - request { - method "GET" - url "test" - } - response { - status 200 - body("""{"property1":"a","property2":"${value(client('123'), server(regex('[0-9]{3}')))}"}""") - headers { - header('Content-Type': 'application/json') + GroovyDsl contractDsl = GroovyDsl.make { + request { + method "GET" + url "test" + } + response { + status 200 + body("""{"property1":"a","property2":"${value(client('123'), server(regex('[0-9]{3}')))}"}""") + headers { + header('Content-Type': 'application/json') + + } } - } - } - MockMvcSpockMethodBodyBuilder builder = new MockMvcSpockMethodBodyBuilder(contractDsl) - BlockBuilder blockBuilder = new BlockBuilder(" ") + MockMvcSpockMethodBodyBuilder builder = new MockMvcSpockMethodBodyBuilder(contractDsl) + BlockBuilder blockBuilder = new BlockBuilder(" ") when: - builder.appendTo(blockBuilder) + builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property2").matches("[0-9]{3}")""") - blockBuilder.toString().contains("""assertThat(parsedJson).field("property1").isEqualTo("a")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").matches("[0-9]{3}")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""") and: - stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) + stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @Issue(["#126", "#143"]) @@ -347,7 +348,7 @@ class MockMvcSpockMethodBuilderSpec extends Specification implements WireMockStu when: builder.appendTo(blockBuilder) then: - blockBuilder.toString().contains("""assertThat(parsedJson).field("property").matches("\\d+")""") + blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property").matches("\\\\d+")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -389,8 +390,8 @@ class MockMvcSpockMethodBuilderSpec extends Specification implements WireMockStu def spockTest = blockBuilder.toString() then: spockTest.contains('get("/users?limit=10&offset=20&filter=email&sort=name&search=55&age=99&name=Denis.Stepanov&email=bob@email.com")') - spockTest.contains('assertThat(parsedJson).field("property1").isEqualTo("a")') - spockTest.contains('assertThat(parsedJson).field("property2").isEqualTo("b")') + spockTest.contains('assertThatJson(parsedJson).field("property1").isEqualTo("a")') + spockTest.contains('assertThatJson(parsedJson).field("property2").isEqualTo("b")') and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -401,7 +402,7 @@ class MockMvcSpockMethodBuilderSpec extends Specification implements WireMockStu GroovyDsl contractDsl = GroovyDsl.make { request { method 'GET' - url($(stub(regex('/foo/[0-9]+')), test('/foo/123456'))){ + url($(stub(regex('/foo/[0-9]+')), test('/foo/123456'))) { queryParameters { parameter 'limit': $(client(equalTo("20")), server(equalTo("10"))) parameter 'offset': $(client(containing("20")), server(equalTo("20"))) @@ -433,8 +434,8 @@ class MockMvcSpockMethodBuilderSpec extends Specification implements WireMockStu def spockTest = blockBuilder.toString() then: spockTest.contains('get("/foo/123456?limit=10&offset=20&filter=email&sort=name&search=55&age=99&name=Denis.Stepanov&email=bob@email.com")') - spockTest.contains('assertThat(parsedJson).field("property1").isEqualTo("a")') - spockTest.contains('assertThat(parsedJson).field("property2").isEqualTo("b")') + spockTest.contains('assertThatJson(parsedJson).field("property1").isEqualTo("a")') + spockTest.contains('assertThatJson(parsedJson).field("property2").isEqualTo("b")') and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -587,8 +588,8 @@ class MockMvcSpockMethodBuilderSpec extends Specification implements WireMockStu builder.appendTo(blockBuilder) def spockTest = blockBuilder.toString() then: - spockTest.contains("""assertThat(parsedJson).array("errors").contains("property").isEqualTo("bank_account_number")""") - spockTest.contains("""assertThat(parsedJson).array("errors").contains("message").isEqualTo("incorrect_format")""") + spockTest.contains("""assertThatJson(parsedJson).array("errors").contains("property").isEqualTo("bank_account_number")""") + spockTest.contains("""assertThatJson(parsedJson).array("errors").contains("message").isEqualTo("incorrect_format")""") and: stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new Contract(null, false, 0, null), contractDsl).toWireMockClientStub()) } @@ -654,7 +655,7 @@ class MockMvcSpockMethodBuilderSpec extends Specification implements WireMockStu builder.appendTo(blockBuilder) def spockTest = blockBuilder.toString() then: - spockTest.contains("""assertThat(parsedJson).field("message").matches("User not found by email = \\\\[[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,4}\\\\]")""") + spockTest.contains("""assertThatJson(parsedJson).field("message").matches("User not found by email = \\\\\\\\[[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\\\\\.[a-zA-Z]{2,4}\\\\\\\\]")""") } @Issue('42') @@ -668,67 +669,69 @@ class MockMvcSpockMethodBuilderSpec extends Specification implements WireMockStu def spockTest = blockBuilder.toString() then: spockTest.contains('''"email":"abc@abc.com"''') - spockTest.contains("""assertThat(parsedJson).field("code").matches("(123123)?")""") + spockTest.contains("""assertThatJson(parsedJson).field("code").matches("(123123)?")""") !spockTest.contains('''REGEXP''') !spockTest.contains('''OPTIONAL''') !spockTest.contains('''OptionalProperty''') where: - contractDsl << [ - GroovyDsl.make { - priority 1 - request { - method 'POST' - url '/users/password' - headers { - header 'Content-Type': 'application/json' + contractDsl << [ + GroovyDsl.make { + priority 1 + request { + method 'POST' + url '/users/password' + headers { + header 'Content-Type': 'application/json' + } + body( + email: $(stub(optional(regex(email()))), test('abc@abc.com')), + callback_url: $(stub(regex(hostname())), test('http://partners.com')) + ) } - body( - email: $(stub(optional(regex(email()))), test('abc@abc.com')), - callback_url: $(stub(regex(hostname())), test('http://partners.com')) - ) - } - response { - status 404 - headers { - header 'Content-Type': 'application/json' + response { + status 404 + headers { + header 'Content-Type': 'application/json' + } + body( + code: value(stub("123123"), test(optional("123123"))), + message: "User not found by email = [${value(test(regex(email())), stub('not.existing@user.com'))}]" + ) } - body( - code: value(stub("123123"), test(optional("123123"))), - message: "User not found by email = [${value(test(regex(email())), stub('not.existing@user.com'))}]" - ) - } - }, - GroovyDsl.make { - priority 1 - request { - method 'POST' - url '/users/password' - headers { - header 'Content-Type': 'application/json' - } - body( - """ { + }, + GroovyDsl.make { + priority 1 + request { + method 'POST' + url '/users/password' + headers { + header 'Content-Type': 'application/json' + } + body( + """ { "email" : "${value(stub(optional(regex(email()))), test('abc@abc.com'))}", "callback_url" : "${value(client(regex(hostname())), server('http://partners.com'))}" } """ - ) - } - response { - status 404 - headers { - header 'Content-Type': 'application/json' + ) } - body( - """ { + response { + status 404 + headers { + header 'Content-Type': 'application/json' + } + body( + """ { "code" : "${value(stub(123123), test(optional(123123)))}", - "message" : "User not found by email = [${value(server(regex(email())), client('not.existing@user.com'))}]" + "message" : "User not found by email = [${ + value(server(regex(email())), client('not.existing@user.com')) + }]" } """ - ) + ) + } } - } - ] + ] } @Issue('72') @@ -753,7 +756,7 @@ class MockMvcSpockMethodBuilderSpec extends Specification implements WireMockStu } response { status 200 - body( """{ + body("""{ "fraudCheckStatus": "OK", "rejectionReason": ${value(client(null), server(execute('assertThatRejectionReasonIsNull($it)')))} }""") @@ -791,26 +794,26 @@ class MockMvcSpockMethodBuilderSpec extends Specification implements WireMockStu } body( client: [ - first_name: $(stub(regex(onlyAlphaUnicode())), test('Denis')), - last_name: $(stub(regex(onlyAlphaUnicode())), test('FakeName')), - email: $(stub(regex(email())), test('fakemail@fakegmail.com')), - fax: $(stub(PHONE_NUMBER), test('+xx001213214')), - phone: $(stub(PHONE_NUMBER), test('2223311')), + first_name : $(stub(regex(onlyAlphaUnicode())), test('Denis')), + last_name : $(stub(regex(onlyAlphaUnicode())), test('FakeName')), + email : $(stub(regex(email())), test('fakemail@fakegmail.com')), + fax : $(stub(PHONE_NUMBER), test('+xx001213214')), + phone : $(stub(PHONE_NUMBER), test('2223311')), data_of_birth: $(stub(DATETIME), test('2002-10-22T00:00:00Z')) ], client_id_card: [ - id: $(stub(ANYSTRING), test('ABC12345')), + id : $(stub(ANYSTRING), test('ABC12345')), date_of_issue: $(stub(ANYSTRING), test('2002-10-02T00:00:00Z')), - address: [ - street: $(stub(ANYSTRING), test('Light Street')), - city: $(stub(ANYSTRING), test('Fire')), - region: $(stub(ANYSTRING), test('Skys')), + address : [ + street : $(stub(ANYSTRING), test('Light Street')), + city : $(stub(ANYSTRING), test('Fire')), + region : $(stub(ANYSTRING), test('Skys')), country: $(stub(ANYSTRING), test('HG')), - zip: $(stub(NUMBERS), test('658965')) + zip : $(stub(NUMBERS), test('658965')) ] ], incomes_and_expenses: [ - monthly_income: $(stub(NUMBERS), test('0.0')), + monthly_income : $(stub(NUMBERS), test('0.0')), monthly_loan_repayments: $(stub(NUMBERS), test('100')), monthly_living_expenses: $(stub(NUMBERS), test('22')) ], @@ -897,7 +900,7 @@ World.'''""") } @Issue('180') - def "should generate proper test code when having multipart parameters"(){ + def "should generate proper test code when having multipart parameters"() { given: GroovyDsl contractDsl = GroovyDsl.make { request { @@ -929,32 +932,32 @@ World.'''""") } @Issue('180') - def "should generate proper test code when having multipart parameters with named as map"() { - given: - GroovyDsl contractDsl = GroovyDsl.make { - request { - method "PUT" - url "/multipart" - multipart( - formParameter: value(client(regex('".+"')), server('"formParameterValue"')), - someBooleanParameter: value(client(regex('(true|false)')), server('true')), - file: named( - name: value(client(regex('.+')), server('filename.csv')), - content: value(client(regex('.+')), server('file content'))) - ) - } - response { - status 200 - } - } - MockMvcSpockMethodBodyBuilder builder = new MockMvcSpockMethodBodyBuilder(contractDsl) - BlockBuilder blockBuilder = new BlockBuilder(" ") - when: - builder.given(blockBuilder) - def spockTest = blockBuilder.toString() - then: - spockTest.contains('.multiPart') - } + def "should generate proper test code when having multipart parameters with named as map"() { + given: + GroovyDsl contractDsl = GroovyDsl.make { + request { + method "PUT" + url "/multipart" + multipart( + formParameter: value(client(regex('".+"')), server('"formParameterValue"')), + someBooleanParameter: value(client(regex('(true|false)')), server('true')), + file: named( + name: value(client(regex('.+')), server('filename.csv')), + content: value(client(regex('.+')), server('file content'))) + ) + } + response { + status 200 + } + } + MockMvcSpockMethodBodyBuilder builder = new MockMvcSpockMethodBodyBuilder(contractDsl) + BlockBuilder blockBuilder = new BlockBuilder(" ") + when: + builder.given(blockBuilder) + def spockTest = blockBuilder.toString() + then: + spockTest.contains('.multiPart') + } } diff --git a/gradle.properties b/gradle.properties index bc99f91ba8..fa9182de93 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,4 +2,4 @@ nexusUsername = nexusPassword = wiremockVersion = 2.0.5-beta -jsonassertVersion = 0.1.0 +jsonassertVersion = 0.1.2