Skip to content

Commit 5c8f308

Browse files
committed
add test for enum defined in an object
1 parent 37b18ad commit 5c8f308

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.github.swagger.scala3enum.converter
2+
3+
object Ctx {
4+
enum ColorEnum { case Red, Green, Blue }
5+
}
6+
7+
case class CtxCar(make: String, color: Ctx.ColorEnum)

src/test/scala/com/github/swagger/scala3enum/converter/SwaggerScala3EnumModelConverterSpec.scala

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import scala.reflect.Enum
1111

1212
class SwaggerScala3EnumModelConverterSpec extends AnyWordSpec with Matchers with OptionValues {
1313
"SwaggerScala3EnumModelConverter" should {
14-
"deserialize Car" in {
14+
"get model for Car" in {
1515
/*
1616
val carClass = classOf[Car]
1717
val enumClass = carClass.getMethods.toList.filter(_.getName == "color").map(_.getReturnType).head
@@ -29,6 +29,17 @@ class SwaggerScala3EnumModelConverterSpec extends AnyWordSpec with Matchers with
2929
field.asInstanceOf[StringSchema].getEnum.asScala shouldEqual Seq("Red", "Green", "Blue")
3030
nullSafeList(model.value.getRequired) shouldBe Seq("color", "make")
3131
}
32+
"get model for CtxCar" in {
33+
val converter = ModelConverters.getInstance()
34+
val schemas = converter.readAll(classOf[CtxCar]).asScala.toMap
35+
val model = findModel(schemas, "CtxCar")
36+
model should be (defined)
37+
model.get.getProperties should not be (null)
38+
val field = model.value.getProperties.get("color")
39+
field shouldBe a [StringSchema]
40+
field.asInstanceOf[StringSchema].getEnum.asScala shouldEqual Seq("Red", "Green", "Blue")
41+
nullSafeList(model.value.getRequired) shouldBe Seq("color", "make")
42+
}
3243
}
3344

3445
private def findModel(schemas: Map[String, Schema[_]], name: String): Option[Schema[_]] = {

0 commit comments

Comments
 (0)