[kotlin] Enum should match spec (#18062)

* [kotlin] Enum should match spec

Adjust the enum generation to match what is in the spec, rather than
camel-casing it.
Add tests for capitalization scenarios, including for kotlin keywords

* [kotlin] export docs generators for enum change

* [kotlin] export docs generators for enum change

* fix conflicts

---------

Co-authored-by: Tyler B. Thrailkill <tylerbthrailkill@gmail.com>
Co-authored-by: Jari Nystedt <jari.nystedt@tietoevry.com>
This commit is contained in:
William Cheng
2024-03-09 17:42:33 +08:00
committed by GitHub
parent 81e33ede6e
commit 494fc7d182
40 changed files with 336 additions and 117 deletions

View File

@@ -66,14 +66,14 @@ data class Order (
/**
* Order Status
*
* Values: placed,approved,delivered,unknownDefaultOpenApi
* Values: placed,approved,delivered,unknown_default_open_api
*/
@Serializable(with = OrderSerializer::class)
enum class Status(val value: kotlin.String) {
@SerialName(value = "placed") placed("placed"),
@SerialName(value = "approved") approved("approved"),
@SerialName(value = "delivered") delivered("delivered"),
@SerialName(value = "unknown_default_open_api") unknownDefaultOpenApi("unknown_default_open_api");
@SerialName(value = "unknown_default_open_api") unknown_default_open_api("unknown_default_open_api");
}
@Serializer(forClass = Status::class)
@@ -83,7 +83,7 @@ data class Order (
override fun deserialize(decoder: Decoder): Status {
val value = decoder.decodeSerializableValue(kotlin.String.serializer())
return Status.values().firstOrNull { it.value == value }
?: Status.unknownDefaultOpenApi
?: Status.unknown_default_open_api
}
override fun serialize(encoder: Encoder, value: Status) {

View File

@@ -68,14 +68,14 @@ data class Pet (
/**
* pet status in the store
*
* Values: available,pending,sold,unknownDefaultOpenApi
* Values: available,pending,sold,unknown_default_open_api
*/
@Serializable(with = PetSerializer::class)
enum class Status(val value: kotlin.String) {
@SerialName(value = "available") available("available"),
@SerialName(value = "pending") pending("pending"),
@SerialName(value = "sold") sold("sold"),
@SerialName(value = "unknown_default_open_api") unknownDefaultOpenApi("unknown_default_open_api");
@SerialName(value = "unknown_default_open_api") unknown_default_open_api("unknown_default_open_api");
}
@Serializer(forClass = Status::class)
@@ -85,7 +85,7 @@ data class Pet (
override fun deserialize(decoder: Decoder): Status {
val value = decoder.decodeSerializableValue(kotlin.String.serializer())
return Status.values().firstOrNull { it.value == value }
?: Status.unknownDefaultOpenApi
?: Status.unknown_default_open_api
}
override fun serialize(encoder: Encoder, value: Status) {