From 25feb0c0db7847393343e2778ae41e53b2e84f42 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Wed, 11 Oct 2017 13:15:05 +0200 Subject: [PATCH] Maybe now? --- .../MockMvcMethodBodyBuilderSpec.groovy | 13 ++-- .../verifier/util/SyntaxChecker.groovy | 64 +++++++++++++------ 2 files changed, 50 insertions(+), 27 deletions(-) diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/MockMvcMethodBodyBuilderSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/MockMvcMethodBodyBuilderSpec.groovy index d6367594ef..e3ce22630e 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/MockMvcMethodBodyBuilderSpec.groovy +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/MockMvcMethodBodyBuilderSpec.groovy @@ -16,19 +16,20 @@ package org.springframework.cloud.contract.verifier.builder +import java.util.regex.Pattern + import org.codehaus.groovy.control.MultipleCompilationErrorsException import org.junit.Rule -import org.springframework.boot.test.rule.OutputCapture -import org.springframework.cloud.contract.spec.Contract -import org.springframework.cloud.contract.verifier.config.ContractVerifierConfigProperties -import org.springframework.cloud.contract.verifier.dsl.WireMockStubVerifier -import org.springframework.cloud.contract.verifier.util.SyntaxChecker import spock.lang.Issue import spock.lang.Shared import spock.lang.Specification import spock.util.environment.RestoreSystemProperties -import java.util.regex.Pattern +import org.springframework.boot.test.rule.OutputCapture +import org.springframework.cloud.contract.spec.Contract +import org.springframework.cloud.contract.verifier.config.ContractVerifierConfigProperties +import org.springframework.cloud.contract.verifier.dsl.WireMockStubVerifier +import org.springframework.cloud.contract.verifier.util.SyntaxChecker /** * @author Jakub Kubrynski, codearte.io */ diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/SyntaxChecker.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/SyntaxChecker.groovy index e70d86fe44..e6cb43bcf6 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/SyntaxChecker.groovy +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/SyntaxChecker.groovy @@ -1,13 +1,32 @@ package org.springframework.cloud.contract.verifier.util +import java.lang.reflect.Method +import javax.inject.Inject +import javax.ws.rs.client.Entity +import javax.ws.rs.client.WebTarget +import javax.ws.rs.core.Response + +import com.jayway.jsonpath.DocumentContext +import com.jayway.jsonpath.JsonPath +import com.toomuchcoding.jsonassert.JsonAssertion import groovy.transform.CompileStatic +import io.restassured.RestAssured +import io.restassured.module.mockmvc.RestAssuredMockMvc +import io.restassured.response.ResponseOptions import org.codehaus.groovy.control.CompilerConfiguration import org.codehaus.groovy.control.customizers.ASTTransformationCustomizer import org.codehaus.groovy.control.customizers.ImportCustomizer +import org.junit.Rule +import org.junit.Test import org.mdkt.compiler.InMemoryJavaCompiler -import org.springframework.util.ReflectionUtils -import java.lang.reflect.Method +import org.springframework.cloud.contract.spec.Contract +import org.springframework.cloud.contract.verifier.assertion.SpringCloudContractAssertions +import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessage +import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging +import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierObjectMapper +import org.springframework.cloud.contract.verifier.messaging.util.ContractVerifierMessagingUtil +import org.springframework.util.ReflectionUtils /** * checking the syntax of produced scripts @@ -15,21 +34,24 @@ import java.lang.reflect.Method @CompileStatic class SyntaxChecker { + WebTarget webTarget + Entity entity + private static final String[] DEFAULT_IMPORTS = [ - "org.springframework.cloud.contract.spec.Contract", - "io.restassured.response.ResponseOptions", + Contract.name, + ResponseOptions.name, "io.restassured.module.mockmvc.specification.*", "io.restassured.module.mockmvc.*", - "org.junit.Test", - "org.junit.Rule", - "com.jayway.jsonpath.DocumentContext", - "com.jayway.jsonpath.JsonPath", - "javax.inject.Inject", - "org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierObjectMapper", - "org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessage", - "org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging", - "javax.ws.rs.client.WebTarget", - "javax.ws.rs.core.Response" + Test.name, + Rule.name, + DocumentContext.name, + JsonPath.name, + Inject.name, + ContractVerifierObjectMapper.name, + ContractVerifierMessage.name, + ContractVerifierMessaging.name, + WebTarget.name, + Response.name ] private static final String DEFAULT_IMPORTS_AS_STRING = DEFAULT_IMPORTS.collect { @@ -37,13 +59,13 @@ class SyntaxChecker { }.join("\n") private static final String STATIC_IMPORTS = [ - "io.restassured.module.mockmvc.RestAssuredMockMvc.given", - "io.restassured.module.mockmvc.RestAssuredMockMvc.when", - "io.restassured.RestAssured.*", - "javax.ws.rs.client.Entity.*", - "org.springframework.cloud.contract.verifier.messaging.util.ContractVerifierMessagingUtil.headers", - "com.toomuchcoding.jsonassert.JsonAssertion.assertThatJson", - "org.springframework.cloud.contract.verifier.assertion.SpringCloudContractAssertions.assertThat" + "${RestAssuredMockMvc.name}.given", + "${RestAssuredMockMvc.name}.when", + "${RestAssured.name}.*", + "${Entity.name}.*", + "${ContractVerifierMessagingUtil.name}.headers", + "${JsonAssertion.name}.assertThatJson", + "${SpringCloudContractAssertions.name}.assertThat" ].collect { "import static ${it};"}.join("\n") static void tryToCompile(String builderName, String test) {