Skip to content

Commit e73ddd4

Browse files
committed
add tests
1 parent c87e225 commit e73ddd4

1 file changed

Lines changed: 24 additions & 12 deletions

File tree

modules/openapi-generator-gradle-plugin/src/test/kotlin/ValidateTaskDslTest.kt

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)