Fixed the Jotlin sample with the Gradle API
This commit is contained in:
@@ -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[]
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user