@@ -22,6 +22,13 @@ class ValidateTaskDslTest : TestBase() {
2222 arrayOf(" 8.7" , " FILE" )
2323 )
2424
25+ @DataProvider(name = " gradle_version_only_provider" )
26+ fun gradleVersionOnlyProvider (): Array <Array <String ?>> = arrayOf(
27+ arrayOf(null ), // uses the version of Gradle used to build the plugin itself
28+ arrayOf(" 8.7" ),
29+ arrayOf(" 7.6.4" )
30+ )
31+
2532 private fun getGradleRunner (gradleVersion : String? ): GradleRunner {
2633 val gradleRunner = GradleRunner .create()
2734 return if (gradleVersion.isNullOrBlank()) {
@@ -33,15 +40,22 @@ class ValidateTaskDslTest : TestBase() {
3340 }
3441
3542 private fun inputSpecProperty (path : String , format : PropertyFormat , useSetMethod : Boolean = false): String {
36- val reference = path.toPropertyReference(format)
3743 return if (useSetMethod) {
38- " inputSpec.set($reference )"
44+ // For .set() method on RegularFileProperty in task definitions
45+ // Both formats use file() since RegularFileProperty expects a File/RegularFile
46+ """ inputSpec.set(file("$path "))"""
3947 } else {
40- " inputSpec = $reference "
48+ // For direct assignment in extension (openApiValidate block)
49+ // STRING: uses setInputSpec(String) bridge method
50+ // FILE: direct file() assignment (also works via Gradle's property conversion)
51+ when (format) {
52+ PropertyFormat .STRING -> """ inputSpec = "$path """"
53+ PropertyFormat .FILE -> """ inputSpec = file("$path ")"""
54+ }
4155 }
4256 }
4357
44- @Test(dataProvider = " gradle_version_provider " )
58+ @Test(dataProvider = " gradle_version_only_provider " )
4559 fun `openApiValidate should fail on non-file spec` (gradleVersion : String? ) {
4660 // Arrange
4761 withProject(
@@ -202,9 +216,8 @@ class ValidateTaskDslTest : TestBase() {
202216 )
203217 }
204218
205- @Test(dataProvider = " gradle_version_provider" )
206- fun `validateGoodSpec as defined task should succeed on valid spec` (gradleVersion : String? , format : String ) {
207- val propertyFormat = PropertyFormat .valueOf(format)
219+ @Test(dataProvider = " gradle_version_only_provider" )
220+ fun `validateGoodSpec as defined task should succeed on valid spec` (gradleVersion : String? ) {
208221 // Arrange
209222 val projectFiles = mapOf (
210223 " spec.yaml" to javaClass.classLoader.getResourceAsStream(" specs/petstore-v3.0.yaml" )
@@ -217,7 +230,7 @@ class ValidateTaskDslTest : TestBase() {
217230 | }
218231 |
219232 | task validateGoodSpec(type: org.openapitools.generator.gradle.plugin.tasks.ValidateTask) {
220- | ${inputSpecProperty( " spec.yaml" , propertyFormat, useSetMethod = true )}
233+ | inputSpec.set(file( "spec.yaml"))
221234 | }
222235 """ .trimMargin(), projectFiles
223236 )
@@ -240,9 +253,8 @@ class ValidateTaskDslTest : TestBase() {
240253 )
241254 }
242255
243- @Test(dataProvider = " gradle_version_provider" )
244- fun `validateBadSpec as defined task should fail on invalid spec` (gradleVersion : String? , format : String ) {
245- val propertyFormat = PropertyFormat .valueOf(format)
256+ @Test(dataProvider = " gradle_version_only_provider" )
257+ fun `validateBadSpec as defined task should fail on invalid spec` (gradleVersion : String? ) {
246258 // Arrange
247259 val projectFiles = mapOf (
248260 " spec.yaml" to javaClass.classLoader.getResourceAsStream(" specs/petstore-v3.0-invalid-due-to-missing-info-attribute.yaml" )
@@ -254,7 +266,7 @@ class ValidateTaskDslTest : TestBase() {
254266 | }
255267 |
256268 | task validateBadSpec(type: org.openapitools.generator.gradle.plugin.tasks.ValidateTask) {
257- | ${inputSpecProperty( " spec.yaml" , propertyFormat, useSetMethod = true )}
269+ | inputSpec.set(file( "spec.yaml"))
258270 | }
259271 """ .trimMargin(), projectFiles
260272 )
0 commit comments