Fixed the Jotlin sample with the Gradle API

This commit is contained in:
Marcin Grzejszczak
2019-08-14 12:19:53 +02:00
parent ebc524c87d
commit 3c4772bb6f
6 changed files with 24 additions and 18 deletions

View File

@@ -58,7 +58,7 @@ dependencies {
// tag::contract_dsl[]
contracts {
packageWithBaseClasses = "com.example.fraud"
packageWithBaseClasses = objects.property(String::class).value("com.example.fraud")
}
// end::contract_dsl[]

View File

@@ -16,6 +16,8 @@
package org.springframework.cloud.contract.verifier.plugin
import javax.inject.Inject
import groovy.transform.CompileStatic
import org.apache.commons.logging.Log
import org.apache.commons.logging.LogFactory
@@ -26,12 +28,11 @@ import org.gradle.api.provider.MapProperty
import org.gradle.api.provider.Property
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.Optional
import org.springframework.cloud.contract.stubrunner.spring.StubRunnerProperties
import org.springframework.cloud.contract.verifier.config.TestFramework
import org.springframework.cloud.contract.verifier.config.TestMode
import javax.inject.Inject
/**
* @author Marcin Grzejszczak
* @author Anatoliy Balakirev

View File

@@ -31,7 +31,8 @@ class BaseClassProvider {
private static final String SEPARATOR = "_REPLACEME_";
String retrieveBaseClass(Map<String, String> baseClassMappings, String packageWithBaseClasses, String baseClassForTests,
String retrieveBaseClass(Map<String, String> baseClassMappings,
String packageWithBaseClasses, String baseClassForTests,
String includedDirectoryRelativePath) {
String contractPathAsPackage = includedDirectoryRelativePath
.replace(File.separator, ".");
@@ -39,15 +40,15 @@ class BaseClassProvider {
SEPARATOR);
// package mapping takes super precedence
if (baseClassMappings != null && !baseClassMappings.isEmpty()) {
Optional<Map.Entry<String, String>> mapping = baseClassMappings.entrySet().stream().filter(entry -> {
Optional<Map.Entry<String, String>> mapping = baseClassMappings.entrySet()
.stream().filter(entry -> {
String pattern = entry.getKey();
return contractPathAsPackage.matches(pattern);
}).findFirst();
if (log.isDebugEnabled()) {
log.debug("Matching pattern for contract package ["
+ contractPathAsPackage + "] with setup "
+ baseClassMappings + " is [" + mapping
+ "]");
+ contractPathAsPackage + "] with setup " + baseClassMappings
+ " is [" + mapping + "]");
}
if (mapping.isPresent()) {
return mapping.get().getValue();
@@ -56,11 +57,13 @@ class BaseClassProvider {
if (StringUtils.isEmpty(packageWithBaseClasses)) {
return baseClassForTests;
}
String generatedClassName = generateDefaultBaseClassName(contractPackage, packageWithBaseClasses);
String generatedClassName = generateDefaultBaseClassName(contractPackage,
packageWithBaseClasses);
return generatedClassName + "Base";
}
private String generateDefaultBaseClassName(String classPackage, String packageWithBaseClasses) {
private String generateDefaultBaseClassName(String classPackage,
String packageWithBaseClasses) {
String[] splitPackage = NamesUtil.convertIllegalPackageChars(classPackage)
.split(SEPARATOR);
if (splitPackage.length > 1) {
@@ -68,8 +71,7 @@ class BaseClassProvider {
String butLast = NamesUtil.capitalize(splitPackage[splitPackage.length - 2]);
return packageWithBaseClasses + "." + butLast + last;
}
return packageWithBaseClasses + "."
+ NamesUtil.capitalize(splitPackage[0]);
return packageWithBaseClasses + "." + NamesUtil.capitalize(splitPackage[0]);
}
}

View File

@@ -27,8 +27,9 @@ interface DefaultBaseClassProvider {
default String fqnBaseClass() {
ContractVerifierConfigProperties properties = generatedClassMetaData().configProperties;
String includedDirectoryRelativePath = generatedClassMetaData().includedDirectoryRelativePath;
return baseClassProvider().retrieveBaseClass(properties.getBaseClassMappings(), properties.getPackageWithBaseClasses(),
properties.getBaseClassForTests(), includedDirectoryRelativePath);
return baseClassProvider().retrieveBaseClass(properties.getBaseClassMappings(),
properties.getPackageWithBaseClasses(), properties.getBaseClassForTests(),
includedDirectoryRelativePath);
}
}

View File

@@ -92,8 +92,9 @@ class GenericJsonBodyThen implements Then {
private void addJsonBodyVerification(SingleContractMetadata contractMetadata,
Object responseBody, BodyMatchers bodyMatchers) {
JsonBodyVerificationBuilder jsonBodyVerificationBuilder = new JsonBodyVerificationBuilder(
this.generatedClassMetaData.configProperties.getAssertJsonSize(), this.templateProcessor,
this.contractTemplate, contractMetadata.getContract(),
this.generatedClassMetaData.configProperties.getAssertJsonSize(),
this.templateProcessor, this.contractTemplate,
contractMetadata.getContract(),
Optional.of(this.blockBuilder.getLineEnding()),
bodyParser::postProcessJsonPath);
// TODO: Refactor spock from should comment out bdd blocks

View File

@@ -73,8 +73,9 @@ class GroovyClassMetaData implements ClassMetaData, DefaultClassMetadata {
public ClassMetaData parentClass() {
ContractVerifierConfigProperties properties = generatedClassMetaData().configProperties;
String includedDirectoryRelativePath = generatedClassMetaData().includedDirectoryRelativePath;
String baseClass = baseClassProvider().retrieveBaseClass(properties.getBaseClassMappings(),
properties.getPackageWithBaseClasses(), properties.getBaseClassForTests(), includedDirectoryRelativePath);
String baseClass = baseClassProvider().retrieveBaseClass(
properties.getBaseClassMappings(), properties.getPackageWithBaseClasses(),
properties.getBaseClassForTests(), includedDirectoryRelativePath);
baseClass = StringUtils.hasText(baseClass) ? baseClass : "Specification";
int lastIndexOf = baseClass.lastIndexOf(".");
if (lastIndexOf > 0) {