|
1 | 1 | package io.swagger.v3.parser.test;
|
2 | 2 |
|
| 3 | +import io.swagger.v3.core.util.Yaml; |
| 4 | +import io.swagger.v3.core.util.Yaml31; |
3 | 5 | import io.swagger.v3.oas.models.OpenAPI;
|
4 | 6 | import io.swagger.v3.oas.models.media.Schema;
|
5 | 7 | import io.swagger.v3.oas.models.security.SecurityRequirement;
|
|
14 | 16 |
|
15 | 17 | public class OAI31DeserializationTest {
|
16 | 18 |
|
| 19 | + @Test(description = "Test OAS31 new Schema keys deserialization") |
| 20 | + public void testSchemaKeysOAS31() { |
| 21 | + SwaggerParseResult result = new OpenAPIV3Parser().readLocation( "3.1.0/petstore-3.1_more.yaml", null, null); |
| 22 | + assertNotNull(result.getOpenAPI()); |
| 23 | + OpenAPI openAPI = result.getOpenAPI(); |
| 24 | + |
| 25 | + assertTrue(result.getMessages().size() == 0); |
| 26 | + Schema schema2020_12 = openAPI.getComponents().getSchemas().get("Schema2020_12"); |
| 27 | + assertEquals(schema2020_12.getConst(), "const text"); |
| 28 | + assertEquals(schema2020_12.get$id(), "schemaId"); |
| 29 | + assertEquals(schema2020_12.get$comment(), "comment for testing"); |
| 30 | + assertNotNull(schema2020_12.getIf().getProperties().get("country")); |
| 31 | + assertNotNull(schema2020_12.getThen().getProperties().get("maple_trees")); |
| 32 | + assertNotNull(schema2020_12.getElse().getProperties().get("accept")); |
| 33 | + assertTrue(schema2020_12.getUnevaluatedProperties() instanceof Schema); |
| 34 | + Schema unevaluatedProperty = (Schema)schema2020_12.getUnevaluatedProperties(); |
| 35 | + assertTrue(unevaluatedProperty.getTypes().contains("object")); |
| 36 | + assertEquals(schema2020_12.getContentMediaType(), "text/html"); |
| 37 | + assertEquals(schema2020_12.get$anchor(), "anchor text"); |
| 38 | + assertEquals(schema2020_12.get$schema(), "https://json-schema.org/draft/2020-12/schema"); |
| 39 | + assertNotNull(schema2020_12.getExamples().get(0)); |
| 40 | + assertEquals(schema2020_12.getContentEncoding(), "base64"); |
| 41 | + assertEquals(schema2020_12.getMinContains(), Integer.valueOf(2)); |
| 42 | + assertEquals(schema2020_12.getMaxContains(), Integer.valueOf(4)); |
| 43 | + assertTrue(schema2020_12.getPrefixItems().get(0) instanceof Schema); |
| 44 | + Schema prefixItems = (Schema)schema2020_12.getPrefixItems().get(0); |
| 45 | + assertEquals(prefixItems.getDescription(), "Name"); |
| 46 | + assertTrue(schema2020_12.getContains().getTypes().contains("integer")); |
| 47 | + assertTrue(schema2020_12.getContentSchema().getTypes().contains("string")); |
| 48 | + assertEquals(schema2020_12.getPropertyNames().getPattern(), "^[A-Za-z_][A-Za-z0-9_]*$"); |
| 49 | + assertTrue(schema2020_12.getDependentSchemas().get("credit_card") instanceof Schema); |
| 50 | + Schema dependantSchema = (Schema)schema2020_12.getDependentSchemas().get("credit_card"); |
| 51 | + assertEquals(dependantSchema.getRequired().get(0), "billing_address"); |
| 52 | + assertTrue(schema2020_12.getDependentRequired().containsKey("credit_card")); |
| 53 | + assertTrue(schema2020_12.getPatternProperties().get("^S_") instanceof Schema); |
| 54 | + Schema patternProperties = (Schema)schema2020_12.getPatternProperties().get("^S_"); |
| 55 | + assertTrue(schema2020_12.getUnevaluatedItems().getTypes().contains("object")); |
| 56 | + assertTrue(patternProperties.getTypes().contains("string")); |
| 57 | + } |
| 58 | + |
17 | 59 | @Test(description = "Test basic OAS31 deserialization/validation")
|
18 | 60 | public void testBasicOAS31() {
|
19 | 61 | SwaggerParseResult result = new OpenAPIV3Parser().readLocation( "3.1.0/test/basicOAS31.yaml", null, null);
|
@@ -67,7 +109,6 @@ public void testBasicOAS31() {
|
67 | 109 | //$ref siblings
|
68 | 110 | assertNotNull(openAPI.getComponents().getSchemas().get("Pet").get$ref());
|
69 | 111 | assertNotNull(openAPI.getComponents().getSchemas().get("Pet").getProperties());
|
70 |
| - |
71 | 112 | }
|
72 | 113 |
|
73 | 114 | @Test(description = "Test basic OAS30 deserialization/validation if added the fields of OAS3.1")
|
@@ -558,9 +599,9 @@ public void testSiblingsReferenceJSONSchema5() {
|
558 | 599 | assertNotNull(patientPersonSchema.getUnevaluatedProperties());
|
559 | 600 | assertTrue(patientPersonSchema.getUnevaluatedProperties() instanceof Boolean);
|
560 | 601 | assertFalse(((Boolean)patientPersonSchema.getUnevaluatedProperties()).booleanValue());
|
561 |
| - |
562 | 602 | //unevaluatedItems
|
563 | 603 | assertNotNull(profile.getUnevaluatedItems());
|
| 604 | + |
564 | 605 | }
|
565 | 606 |
|
566 | 607 | @Test(description = "Test siblings with $ref for if - then - else, dependentRequired, dependentSchemas")
|
@@ -656,6 +697,7 @@ public void testSiblingsReferenceJSONSchema6() {
|
656 | 697 | //dependentSchemas
|
657 | 698 | assertNotNull(openAPI.getComponents().getSchemas().get("PaymentMethod"));
|
658 | 699 | Schema paymentMethod = openAPI.getComponents().getSchemas().get("PaymentMethod");
|
| 700 | + |
659 | 701 | }
|
660 | 702 |
|
661 | 703 | @Test(description = "Test examples in JSONSchema")
|
|
0 commit comments