diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierExtension.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierExtension.groovy index ef827ff0e6..94ab514434 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierExtension.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierExtension.groovy @@ -158,6 +158,26 @@ class ContractVerifierExtension { String classifier String version String stringNotation + + void groupId(String groupId) { + this.groupId = groupId + } + + void artifactId(String artifactId) { + this.artifactId = artifactId + } + + void classifier(String classifier) { + this.classifier = classifier + } + + void version(String version) { + this.version = version + } + + void stringNotation(String stringNotation) { + this.stringNotation = stringNotation + } } static class BaseClassMapping { diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/GradleContractsDownloaderSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/GradleContractsDownloaderSpec.groovy index cd511c58f3..00c66585e0 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/GradleContractsDownloaderSpec.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/GradleContractsDownloaderSpec.groovy @@ -20,4 +20,50 @@ class GradleContractsDownloaderSpec extends Specification { stubConfig.version == "1.0.0" stubConfig.classifier == "stubs" } + + def "should parse dependency via direct setting"() { + given: + def dep = new ContractVerifierExtension.Dependency( + groupId: "com.example", + artifactId: "foo", + version: "1.0.0", + classifier: "stubs" + ) + when: + StubConfiguration stubConfig = new GradleContractsDownloader(null, null).stubConfiguration(dep) + then: + stubConfig.groupId == "com.example" + stubConfig.artifactId == "foo" + stubConfig.version == "1.0.0" + stubConfig.classifier == "stubs" + } + def "should parse dependency via string notation with methods"() { + given: + String stringNotation = "com.example:foo:1.0.0:stubs" + def dep = new ContractVerifierExtension.Dependency() + dep.stringNotation(stringNotation) + when: + StubConfiguration stubConfig = new GradleContractsDownloader(null, null).stubConfiguration(dep) + then: + stubConfig.groupId == "com.example" + stubConfig.artifactId == "foo" + stubConfig.version == "1.0.0" + stubConfig.classifier == "stubs" + } + + def "should parse dependency via direct setting with methods"() { + given: + def dep = new ContractVerifierExtension.Dependency() + dep.groupId("com.example") + dep.artifactId("foo") + dep.version("1.0.0") + dep.classifier("stubs") + when: + StubConfiguration stubConfig = new GradleContractsDownloader(null, null).stubConfiguration(dep) + then: + stubConfig.groupId == "com.example" + stubConfig.artifactId == "foo" + stubConfig.version == "1.0.0" + stubConfig.classifier == "stubs" + } }