mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-10-14 00:13:50 +00:00
* added my fork from https://github.com/Place1/swagger-codegen-typescript-browser * ran bin/typescript-fetch-petstore-all.sh * use FormData.append rather than .set for IE11 compat * reverted change to licenseInfo.mustache * reverted some comments * added package.json and tsconfig.json back to the generator * added support for blob (application/octet-stream) responses * models and apis are now in folders * added support for modelPropertyNaming based on the spec * bug fix * updated samples * Restore pom.xml for typescript project * Restore samples/client/petstore/typescript-fetch/tests/default/package.json ≈ * added support for response type Date conversion * updated samples * Rework pom in "samples.ci" * Restore "samples/client/petstore/typescript-fetch/tests/default" * updated configuration class to use property getters to allow clients to implement configuration values as getters * added {{datatype}}ToJSON functions to handle serialization and naming conversions * fixed missing import * fixed compilation error. updated samples * 1 character change to get CI to run again * updated samples * added support for array type request body * updated tests * support for optional request bodies * updated models json converters to handle undefined inputs (to simplify usage in optional contexts like optional request bodies) * updated samples * updated tests * changed to typescript version 2.4 * updated samples * support for optional properties being null, undefined or omitted * updated samples * bug fix * bug fix * updated samples * ran npm install in test project * patch to get tests running * added support for retrieving raw response. added support for binary request bodies. added support for blob data type for files/binary.
99 lines
3.3 KiB
Kotlin
99 lines
3.3 KiB
Kotlin
package org.openapitools.generator.gradle.plugin
|
|
|
|
import org.gradle.testkit.runner.GradleRunner
|
|
import org.gradle.testkit.runner.TaskOutcome.FAILED
|
|
import org.gradle.testkit.runner.TaskOutcome.SUCCESS
|
|
import org.testng.annotations.Test
|
|
import java.io.File
|
|
import kotlin.test.assertEquals
|
|
import kotlin.test.assertTrue
|
|
|
|
class ValidateTaskDslTest : TestBase() {
|
|
override var temp: File = createTempDir(javaClass.simpleName)
|
|
|
|
@Test
|
|
fun `openApiValidate should fail on non-file spec`() {
|
|
// Arrange
|
|
withProject("""
|
|
| plugins {
|
|
| id 'org.openapi.generator'
|
|
| }
|
|
|
|
|
| openApiValidate {
|
|
| inputSpec = "some_location"
|
|
| }
|
|
""".trimMargin())
|
|
|
|
// Act
|
|
val result = GradleRunner.create()
|
|
.withProjectDir(temp)
|
|
.withArguments("openApiValidate")
|
|
.withPluginClasspath()
|
|
.buildAndFail()
|
|
|
|
// Assert
|
|
assertTrue(result.output.contains("unable to read location `some_location`"), "Unexpected/no message presented to the user for a spec pointing to an invalid URI.")
|
|
assertEquals(FAILED, result.task(":openApiValidate")?.outcome,
|
|
"Expected a failed run, but found ${result.task(":openApiValidate")?.outcome}")
|
|
}
|
|
|
|
@Test
|
|
fun `openApiValidate should succeed on valid spec`() {
|
|
// Arrange
|
|
val projectFiles = mapOf(
|
|
"spec.yaml" to javaClass.classLoader.getResourceAsStream("specs/petstore-v3.0.yaml")
|
|
)
|
|
|
|
withProject("""
|
|
| plugins {
|
|
| id 'org.openapi.generator'
|
|
| }
|
|
|
|
|
| openApiValidate {
|
|
| inputSpec = file("spec.yaml").absolutePath
|
|
| }
|
|
""".trimMargin(), projectFiles)
|
|
|
|
// Act
|
|
val result = GradleRunner.create()
|
|
.withProjectDir(temp)
|
|
.withArguments("openApiValidate")
|
|
.withPluginClasspath()
|
|
.build()
|
|
|
|
// Assert
|
|
assertTrue(result.output.contains("Spec is valid."), "Unexpected/no message presented to the user for a valid spec.")
|
|
assertEquals(SUCCESS, result.task(":openApiValidate")?.outcome,
|
|
"Expected a successful run, but found ${result.task(":openApiValidate")?.outcome}")
|
|
}
|
|
|
|
@Test
|
|
fun `openApiValidate should fail on invalid spec`() {
|
|
// Arrange
|
|
val projectFiles = mapOf(
|
|
"spec.yaml" to javaClass.classLoader.getResourceAsStream("specs/petstore-v3.0-invalid.yaml")
|
|
)
|
|
withProject("""
|
|
| plugins {
|
|
| id 'org.openapi.generator'
|
|
| }
|
|
|
|
|
| openApiValidate {
|
|
| inputSpec = file('spec.yaml').absolutePath
|
|
| }
|
|
""".trimMargin(), projectFiles)
|
|
|
|
// Act
|
|
val result = GradleRunner.create()
|
|
.withProjectDir(temp)
|
|
.withArguments("openApiValidate")
|
|
.withPluginClasspath()
|
|
.buildAndFail()
|
|
|
|
// Assert
|
|
assertTrue(result.output.contains("Spec is invalid."), "Unexpected/no message presented to the user for an invalid spec.")
|
|
assertEquals(FAILED, result.task(":openApiValidate")?.outcome,
|
|
"Expected a failed run, but found ${result.task(":openApiValidate")?.outcome}")
|
|
}
|
|
|
|
} |