37
37
import io .swagger .v3 .oas .models .responses .ApiResponse ;
38
38
import io .swagger .v3 .parser .util .SchemaTypeUtil ;
39
39
40
- import org .openapitools .codegen .ClientOptInput ;
41
- import org .openapitools .codegen .CodegenConstants ;
42
- import org .openapitools .codegen .CodegenModel ;
43
- import org .openapitools .codegen .CodegenOperation ;
44
- import org .openapitools .codegen .CodegenParameter ;
45
- import org .openapitools .codegen .CodegenProperty ;
46
- import org .openapitools .codegen .CodegenResponse ;
47
- import org .openapitools .codegen .CodegenSecurity ;
48
- import org .openapitools .codegen .DefaultGenerator ;
49
- import org .openapitools .codegen .MockDefaultGenerator ;
40
+ import org .openapitools .codegen .*;
50
41
import org .openapitools .codegen .MockDefaultGenerator .WrittenTemplateBasedFile ;
51
- import org .openapitools .codegen .TestUtils ;
42
+ import org .openapitools .codegen .CodegenDiscriminator . MappedModel ;
52
43
import org .openapitools .codegen .config .CodegenConfigurator ;
53
44
import org .openapitools .codegen .languages .AbstractJavaCodegen ;
54
45
import org .openapitools .codegen .languages .JavaClientCodegen ;
@@ -228,7 +219,7 @@ public void testPackageNamesSetInvokerDerivedFromModel() {
228
219
229
220
@ Test
230
221
public void testGetSchemaTypeWithComposedSchemaWithAllOf () {
231
- final OpenAPI openAPI = TestUtils .parseSpec ("src/test/resources/2_0/composed-allof.yaml" );
222
+ final OpenAPI openAPI = TestUtils .parseFlattenSpec ("src/test/resources/2_0/composed-allof.yaml" );
232
223
final JavaClientCodegen codegen = new JavaClientCodegen ();
233
224
234
225
Operation operation = openAPI .getPaths ().get ("/ping" ).getPost ();
@@ -450,7 +441,7 @@ public void testJdkHttpClient() throws Exception {
450
441
451
442
@ Test
452
443
public void testReferencedHeader () {
453
- final OpenAPI openAPI = TestUtils .parseSpec ("src/test/resources/3_0/issue855.yaml" );
444
+ final OpenAPI openAPI = TestUtils .parseFlattenSpec ("src/test/resources/3_0/issue855.yaml" );
454
445
JavaClientCodegen codegen = new JavaClientCodegen ();
455
446
codegen .setOpenAPI (openAPI );
456
447
@@ -465,7 +456,7 @@ public void testReferencedHeader() {
465
456
466
457
@ Test
467
458
public void testAuthorizationScopeValues_Issue392 () {
468
- final OpenAPI openAPI = TestUtils .parseSpec ("src/test/resources/3_0/issue392.yaml" );
459
+ final OpenAPI openAPI = TestUtils .parseFlattenSpec ("src/test/resources/3_0/issue392.yaml" );
469
460
470
461
final DefaultGenerator defaultGenerator = new DefaultGenerator ();
471
462
@@ -493,7 +484,7 @@ public void testAuthorizationScopeValues_Issue392() {
493
484
494
485
@ Test
495
486
public void testAuthorizationsHasMoreWhenFiltered () {
496
- final OpenAPI openAPI = TestUtils .parseSpec ("src/test/resources/3_0/issue4584.yaml" );
487
+ final OpenAPI openAPI = TestUtils .parseFlattenSpec ("src/test/resources/3_0/issue4584.yaml" );
497
488
498
489
final DefaultGenerator defaultGenerator = new DefaultGenerator ();
499
490
@@ -513,7 +504,7 @@ public void testAuthorizationsHasMoreWhenFiltered() {
513
504
514
505
@ Test
515
506
public void testFreeFormObjects () {
516
- final OpenAPI openAPI = TestUtils .parseSpec ("src/test/resources/3_0/issue796.yaml" );
507
+ final OpenAPI openAPI = TestUtils .parseFlattenSpec ("src/test/resources/3_0/issue796.yaml" );
517
508
JavaClientCodegen codegen = new JavaClientCodegen ();
518
509
519
510
Schema test1 = openAPI .getComponents ().getSchemas ().get ("MapTest1" );
@@ -546,16 +537,102 @@ public void testFreeFormObjects() {
546
537
547
538
@ Test
548
539
public void testBearerAuth () {
549
- final OpenAPI openAPI = TestUtils .parseSpec ("src/test/resources/3_0/pingBearerAuth.yaml" );
540
+ final OpenAPI openAPI = TestUtils .parseFlattenSpec ("src/test/resources/3_0/pingBearerAuth.yaml" );
550
541
JavaClientCodegen codegen = new JavaClientCodegen ();
551
-
542
+
552
543
List <CodegenSecurity > security = codegen .fromSecurity (openAPI .getComponents ().getSecuritySchemes ());
553
544
Assert .assertEquals (security .size (), 1 );
554
545
Assert .assertEquals (security .get (0 ).isBasic , Boolean .TRUE );
555
546
Assert .assertEquals (security .get (0 ).isBasicBasic , Boolean .FALSE );
556
547
Assert .assertEquals (security .get (0 ).isBasicBearer , Boolean .TRUE );
557
548
}
558
549
550
+ @ Test
551
+ public void testComposedSchemaOneOfDiscriminatorMap () {
552
+ final OpenAPI openAPI = TestUtils .parseFlattenSpec ("src/test/resources/3_0/oneoOfDiscriminator.yaml" );
553
+ JavaClientCodegen codegen = new JavaClientCodegen ();
554
+ codegen .setOpenAPI (openAPI );
555
+
556
+ String modelName ;
557
+ Schema sc ;
558
+ CodegenModel cm ;
559
+ java .util .LinkedHashSet hs ;
560
+ String mn ;
561
+
562
+ // inline oneOf models
563
+ modelName = "FruitInlineDisc" ;
564
+ sc = openAPI .getComponents ().getSchemas ().get (modelName );
565
+ cm = codegen .fromModel (modelName , sc );
566
+ hs = new java .util .LinkedHashSet ();
567
+ mn = "FruitInlineDisc_oneOf" ;
568
+ hs .add (new MappedModel (mn , codegen .toModelName (mn )));
569
+ mn = "FruitInlineDisc_oneOf_1" ;
570
+ hs .add (new MappedModel (mn , codegen .toModelName (mn )));
571
+ Assert .assertEquals (cm .discriminator .getMappedModels (), hs );
572
+
573
+ // inline oneOf with inline oneOf model
574
+ modelName = "FruitInlineInlineDisc" ;
575
+ sc = openAPI .getComponents ().getSchemas ().get (modelName );
576
+ cm = codegen .fromModel (modelName , sc );
577
+ hs = new java .util .LinkedHashSet ();
578
+ Assert .assertEquals (cm .discriminator .getMappedModels (), hs );
579
+
580
+ // ref oneOf models with discriminator in properties in those models
581
+ modelName = "FruitReqDisc" ;
582
+ sc = openAPI .getComponents ().getSchemas ().get (modelName );
583
+ cm = codegen .fromModel (modelName , sc );
584
+ hs = new java .util .LinkedHashSet ();
585
+ mn = "AppleReqDisc" ;
586
+ hs .add (new MappedModel (mn , mn ));
587
+ mn = "BananaReqDisc" ;
588
+ hs .add (new MappedModel (mn , mn ));
589
+ Assert .assertEquals (cm .discriminator .getMappedModels (), hs );
590
+
591
+ // ref oneOf models with discriminator in allOf in those models
592
+ modelName = "FruitAllOfDisc" ;
593
+ sc = openAPI .getComponents ().getSchemas ().get (modelName );
594
+ cm = codegen .fromModel (modelName , sc );
595
+ hs = new java .util .LinkedHashSet ();
596
+ mn = "AppleAllOfDisc" ;
597
+ hs .add (new MappedModel (mn , mn ));
598
+ mn = "BananaAllOfDisc" ;
599
+ hs .add (new MappedModel (mn , mn ));
600
+ Assert .assertEquals (cm .discriminator .getMappedModels (), hs );
601
+
602
+ // ref oneOf models with discriminator in anyOf in those models
603
+ modelName = "FruitAnyOfDisc" ;
604
+ sc = openAPI .getComponents ().getSchemas ().get (modelName );
605
+ cm = codegen .fromModel (modelName , sc );
606
+ hs = new java .util .LinkedHashSet ();
607
+ mn = "AppleAnyOfDisc" ;
608
+ hs .add (new MappedModel (mn , mn ));
609
+ mn = "BananaAnyOfDisc" ;
610
+ hs .add (new MappedModel (mn , mn ));
611
+ Assert .assertEquals (cm .discriminator .getMappedModels (), hs );
612
+
613
+ // ref oneOf models with discriminator in oneOf in those models
614
+ modelName = "FruitOneOfDisc" ;
615
+ sc = openAPI .getComponents ().getSchemas ().get (modelName );
616
+ cm = codegen .fromModel (modelName , sc );
617
+ hs = new java .util .LinkedHashSet ();
618
+ mn = "AppleOneOfDisc" ;
619
+ hs .add (new MappedModel (mn , mn ));
620
+ mn = "BananaOneOfDisc" ;
621
+ hs .add (new MappedModel (mn , mn ));
622
+ Assert .assertEquals (cm .discriminator .getMappedModels (), hs );
623
+
624
+ // ref oneOf models with discriminator in the grandparent schemas of those oneof models
625
+ modelName = "FruitGrandparentDisc" ;
626
+ sc = openAPI .getComponents ().getSchemas ().get (modelName );
627
+ cm = codegen .fromModel (modelName , sc );
628
+ hs = new java .util .LinkedHashSet ();
629
+ mn = "AppleGrandparentDisc" ;
630
+ hs .add (new MappedModel (mn , mn ));
631
+ mn = "BananaGrandparentDisc" ;
632
+ hs .add (new MappedModel (mn , mn ));
633
+ Assert .assertEquals (cm .discriminator .getMappedModels (), hs );
634
+ }
635
+
559
636
private CodegenProperty codegenPropertyWithArrayOfIntegerValues () {
560
637
CodegenProperty array = new CodegenProperty ();
561
638
final CodegenProperty items = new CodegenProperty ();
0 commit comments