@@ -135,13 +135,13 @@ class OpenAPIModelRegistrationSpec extends AnyFlatSpec {
135
135
private sealed trait NestedSealedTrait
136
136
137
137
private object NestedSealedTrait {
138
- case class NestedSealedTraitVariant1 (a : String , b : Int ) extends NestedSealedTrait
138
+ case class NestedSealedTraitVariant1 (a : String , b : Int , c : NestedSealedTrait ) extends NestedSealedTrait
139
139
case object NestedSealedTraitVariant2 extends NestedSealedTrait
140
140
141
141
sealed abstract class NestedSealedTraitVariant3 extends NestedSealedTrait
142
142
143
143
object NestedSealedTraitVariant3 {
144
- case class NestedSealedTraitVariant3Subvariant1 (a : Float ) extends NestedSealedTraitVariant3
144
+ case class NestedSealedTraitVariant3Subvariant1 (a : Float , b : NestedSealedTrait ) extends NestedSealedTraitVariant3
145
145
case object NestedSealedTraitVariant3Subvariant2 extends NestedSealedTraitVariant3
146
146
}
147
147
@@ -393,13 +393,16 @@ class OpenAPIModelRegistrationSpec extends AnyFlatSpec {
393
393
schema => {
394
394
val actualProperties = schema.getProperties.asScala
395
395
396
- val areNonDiscriminatorPropertiesCorrect = actualProperties.contains(" a" ) && actualProperties.contains(" b" )
396
+ val areNonDiscriminatorPropertiesCorrect = actualProperties.contains(" a" ) &&
397
+ actualProperties.contains(" b" ) &&
398
+ actualProperties.contains(" c" ) &&
399
+ actualProperties(" c" ).get$ref === " #/components/schemas/NestedSealedTrait"
397
400
val isDiscriminatorPropertyCorrect = actualProperties.contains(" nestedSealedTraitType" ) && {
398
401
val s = actualProperties(" nestedSealedTraitType" )
399
402
s.getType === " string" && s.getEnum.asScala === Seq (" NestedSealedTraitVariant1" )
400
403
}
401
404
val isDiscriminatorPropertyRequired = schema.getRequired.contains(" nestedSealedTraitType" )
402
- val isCountOfPropertiesCorrect = actualProperties.size === 3
405
+ val isCountOfPropertiesCorrect = actualProperties.size === 4
403
406
404
407
areNonDiscriminatorPropertiesCorrect &&
405
408
isDiscriminatorPropertyCorrect &&
@@ -451,7 +454,9 @@ class OpenAPIModelRegistrationSpec extends AnyFlatSpec {
451
454
schema => {
452
455
val actualProperties = schema.getProperties.asScala
453
456
454
- val areNonDiscriminatorPropertiesCorrect = actualProperties.contains(" a" )
457
+ val areNonDiscriminatorPropertiesCorrect = actualProperties.contains(" a" ) &&
458
+ actualProperties.contains(" b" ) &&
459
+ actualProperties(" b" ).get$ref === " #/components/schemas/NestedSealedTrait"
455
460
val isDiscriminatorPropertyCorrect = actualProperties.contains(" nestedSealedTraitVariant3Type" ) && {
456
461
val s = actualProperties(" nestedSealedTraitVariant3Type" )
457
462
s.getType === " string" && s.getEnum.asScala === Seq (" NestedSealedTraitVariant3Subvariant1" )
@@ -463,7 +468,7 @@ class OpenAPIModelRegistrationSpec extends AnyFlatSpec {
463
468
val areDiscriminatorPropertyRequired = schema.getRequired.contains(
464
469
" nestedSealedTraitVariant3Type"
465
470
) && schema.getRequired.contains(" nestedSealedTraitType" )
466
- val isCountOfPropertiesCorrect = actualProperties.size === 3
471
+ val isCountOfPropertiesCorrect = actualProperties.size === 4
467
472
468
473
areNonDiscriminatorPropertiesCorrect &&
469
474
isDiscriminatorPropertyCorrect &&
@@ -543,13 +548,16 @@ class OpenAPIModelRegistrationSpec extends AnyFlatSpec {
543
548
schema => {
544
549
val actualProperties = schema.getProperties.asScala
545
550
546
- val areNonDiscriminatorPropertiesCorrect = actualProperties.contains(" a" ) && actualProperties.contains(" b" )
551
+ val areNonDiscriminatorPropertiesCorrect = actualProperties.contains(" a" ) &&
552
+ actualProperties.contains(" b" ) &&
553
+ actualProperties.contains(" c" ) &&
554
+ actualProperties(" c" ).get$ref === " #/components/schemas/NestedSealedTrait"
547
555
val isDiscriminatorPropertyCorrect = actualProperties.contains(" nestedSealedTraitType" ) && {
548
556
val s = actualProperties(" nestedSealedTraitType" )
549
557
s.getType === " string" && s.getEnum.asScala === Seq (" NestedSealedTraitVariant1" )
550
558
}
551
559
val isDiscriminatorPropertyRequired = schema.getRequired.contains(" nestedSealedTraitType" )
552
- val isCountOfPropertiesCorrect = actualProperties.size === 3
560
+ val isCountOfPropertiesCorrect = actualProperties.size === 4
553
561
554
562
areNonDiscriminatorPropertiesCorrect &&
555
563
isDiscriminatorPropertyCorrect &&
@@ -601,14 +609,16 @@ class OpenAPIModelRegistrationSpec extends AnyFlatSpec {
601
609
schema => {
602
610
val actualProperties = schema.getProperties.asScala
603
611
604
- val areNonDiscriminatorPropertiesCorrect = actualProperties.contains(" a" )
612
+ val areNonDiscriminatorPropertiesCorrect = actualProperties.contains(" a" ) &&
613
+ actualProperties.contains(" b" ) &&
614
+ actualProperties(" b" ).get$ref == " #/components/schemas/NestedSealedTrait"
605
615
val isDiscriminatorPropertyCorrect = actualProperties.contains(" nestedSealedTraitVariant3Type" ) && {
606
616
val s = actualProperties(" nestedSealedTraitVariant3Type" )
607
617
s.getType === " string" && s.getEnum.asScala === Seq (" NestedSealedTraitVariant3Subvariant1" )
608
618
}
609
619
val isParentDiscriminatorNotInProperties = ! actualProperties.contains(" nestedSealedTraitType" )
610
620
val isDiscriminatorPropertyRequired = schema.getRequired.contains(" nestedSealedTraitVariant3Type" )
611
- val isCountOfPropertiesCorrect = actualProperties.size === 2
621
+ val isCountOfPropertiesCorrect = actualProperties.size === 3
612
622
613
623
areNonDiscriminatorPropertiesCorrect &&
614
624
isDiscriminatorPropertyCorrect &&
0 commit comments