9
9
import io .swagger .v3 .parser .core .models .SwaggerParseResult ;
10
10
import org .testng .annotations .Test ;
11
11
12
+ import java .util .ArrayList ;
12
13
import java .util .List ;
13
14
14
15
import static org .testng .Assert .*;
@@ -395,6 +396,8 @@ public void testSiblingsReferenceJSONSchema5() {
395
396
" propertyNames:\n " +
396
397
" pattern: ^[A-Za-z_][A-Za-z0-9_]*$\n " +
397
398
" $ref: ./ex.json#user-profile\n " +
399
+ " unevaluatedProperties:\n " +
400
+ " type: object\n " +
398
401
" Person:\n " +
399
402
" type: array\n " +
400
403
" prefixItems:\n " +
@@ -422,6 +425,7 @@ public void testSiblingsReferenceJSONSchema5() {
422
425
Schema profile = openAPI .getComponents ().getSchemas ().get ("Profile" );
423
426
Schema containsSchema = openAPI .getComponents ().getSchemas ().get ("ContainsSchema" );
424
427
Schema personSchema = openAPI .getComponents ().getSchemas ().get ("Person" );
428
+ Schema patientPersonSchema = openAPI .getComponents ().getSchemas ().get ("PatientPerson" );
425
429
assertNotNull (profile .get$ref ());
426
430
427
431
//contains
@@ -439,11 +443,15 @@ public void testSiblingsReferenceJSONSchema5() {
439
443
//propertyNames
440
444
assertEquals (profile .getPropertyNames ().getPattern (),"^[A-Za-z_][A-Za-z0-9_]*$" );
441
445
//unevaluatedProperties
442
- //assertNotNull(profile.getUnevaluatedProperties());
443
- //assertTrue(profile.getUnevaluatedProperties().getTypes().contains("object"));
446
+ assertNotNull (profile .getUnevaluatedProperties ());
447
+ assertTrue (profile .getUnevaluatedProperties () instanceof Schema );
448
+ assertTrue (((Schema )profile .getUnevaluatedProperties ()).getTypes ().contains ("object" ));
449
+ assertNotNull (patientPersonSchema .getUnevaluatedProperties ());
450
+ assertTrue (patientPersonSchema .getUnevaluatedProperties () instanceof Boolean );
451
+ assertFalse (((Boolean )patientPersonSchema .getUnevaluatedProperties ()).booleanValue ());
444
452
}
445
453
446
- @ Test (description = "Test siblings with $ref for if - then - else, dependentRequired, dependentSchemas, examples / example " )
454
+ @ Test (description = "Test siblings with $ref for if - then - else, dependentRequired, dependentSchemas" )
447
455
public void testSiblingsReferenceJSONSchema6 () {
448
456
ParseOptions options = new ParseOptions ();
449
457
String refSibling = "openapi: 3.1.0\n " +
@@ -514,28 +522,10 @@ public void testSiblingsReferenceJSONSchema6() {
514
522
" type: boolean\n " +
515
523
" const: true\n " +
516
524
" required:\n " +
517
- " - accept\n " +
518
- " Fruit:\n " +
519
- " type: string\n " +
520
- " examples:\n " +
521
- " - apple\n " +
522
- " - orange\n " +
523
- " Error:\n " +
524
- " type: object\n " +
525
- " properties:\n " +
526
- " code:\n " +
527
- " type: integer\n " +
528
- " message:\n " +
529
- " type: string\n " +
530
- " examples:\n " +
531
- " - code: 123\n " +
532
- " message: Oops...\n " +
533
- " - code: 456\n " +
534
- " message: Feature is not available for your plan\n " ;
525
+ " - accept\n " ;
535
526
SwaggerParseResult result = new OpenAPIV3Parser ().readContents ( refSibling , null , options );
536
527
OpenAPI openAPI = result .getOpenAPI ();
537
528
assertNotNull (openAPI );
538
-
539
529
Yaml31 .prettyPrint (openAPI );
540
530
//if - then - else
541
531
assertNotNull (openAPI .getComponents ().getSchemas ().get ("IfTest" ));
@@ -546,6 +536,7 @@ public void testSiblingsReferenceJSONSchema6() {
546
536
assertTrue (itTest .getThen ().getProperties ().containsKey ("maple_trees" ));
547
537
assertNotNull (itTest .getElse ());
548
538
assertTrue (itTest .getElse ().getProperties ().containsKey ("accept" ));
539
+
549
540
//dependentRequired
550
541
assertNotNull (openAPI .getComponents ().getSchemas ().get ("Payment" ));
551
542
Schema payment = openAPI .getComponents ().getSchemas ().get ("Payment" );
@@ -554,10 +545,56 @@ public void testSiblingsReferenceJSONSchema6() {
554
545
//dependentSchemas
555
546
assertNotNull (openAPI .getComponents ().getSchemas ().get ("PaymentMethod" ));
556
547
Schema paymentMethod = openAPI .getComponents ().getSchemas ().get ("PaymentMethod" );
548
+ }
549
+
550
+ @ Test (description = "Test examples in JSONSchema" )
551
+ public void testExamplesJSONSchema () {
552
+ ParseOptions options = new ParseOptions ();
553
+ String examplesSchema = "openapi: 3.1.0\n " +
554
+ "info:\n " +
555
+ " title: examples JSONSchema\n " +
556
+ " version: 1.0.0\n " +
557
+ "servers:\n " +
558
+ " - url: /\n " +
559
+ "paths: { }\n " +
560
+ "components:\n " +
561
+ " schemas:\n " +
562
+ " Fruit:\n " +
563
+ " type: string\n " +
564
+ " example: kiwi\n " +
565
+ " examples:\n " +
566
+ " - apple\n " +
567
+ " - orange\n " +
568
+ " Error:\n " +
569
+ " type: object\n " +
570
+ " example: wrong\n " +
571
+ " properties:\n " +
572
+ " code:\n " +
573
+ " type: integer\n " +
574
+ " message:\n " +
575
+ " type: string\n " +
576
+ " examples:\n " +
577
+ " - code: 123\n " +
578
+ " message: Oops...\n " +
579
+ " - code: 456\n " +
580
+ " message: Feature is not available for your plan\n " +
581
+ " ExampleSchema:\n " +
582
+ " type: object\n " +
583
+ " example: foo\n " ;
584
+ SwaggerParseResult result = new OpenAPIV3Parser ().readContents ( examplesSchema , null , options );
585
+ OpenAPI openAPI = result .getOpenAPI ();
586
+ assertNotNull (openAPI );
557
587
//examples / example
558
588
assertNotNull (openAPI .getComponents ().getSchemas ().get ("Fruit" ));
559
589
Schema fruit = openAPI .getComponents ().getSchemas ().get ("Fruit" );
590
+ assertTrue (fruit .getExample ().equals ("kiwi" ));
591
+ assertNotNull (fruit .getExamples ());
560
592
assertNotNull (openAPI .getComponents ().getSchemas ().get ("Error" ));
561
593
Schema error = openAPI .getComponents ().getSchemas ().get ("Error" );
594
+ assertTrue (error .getExample ().equals ("wrong" ));
595
+ assertTrue (error .getExamples ().get (0 )!= null );
596
+ assertNotNull (openAPI .getComponents ().getSchemas ().get ("ExampleSchema" ));
597
+ Schema exampleSchema = openAPI .getComponents ().getSchemas ().get ("ExampleSchema" );
598
+ assertTrue (exampleSchema .getExample ().equals ("foo" ));
562
599
}
563
600
}
0 commit comments