Search in sources :

Example 11 with Person

use of io.swagger.v3.core.oas.models.Person in project swagger-parser by swagger-api.

the class OpenAPIDeserializerTest method testNestedDefinitions.

@Test
public void testNestedDefinitions() {
    String yaml = "openapi: 3.0.0\n" + "servers: []\n" + "info:\n" + "  version: ''\n" + "  title: ''\n" + "paths: {}\n" + "components:\n" + "  schemas:\n" + "    Person:\n" + "      required:\n" + "        - id\n" + "        - name\n" + "      properties:\n" + "        id:\n" + "          type: integer\n" + "          format: int64\n" + "        name:\n" + "          type: string\n" + "        address:\n" + "          $ref: '#/components/schemas/Address'\n" + "    Address:\n" + "      required:\n" + "        - zip\n" + "      properties:\n" + "        street:\n" + "          type: string\n" + "        zip:\n" + "          type: integer\n" + "          format: int32\n" + "          minimum: 0\n" + "          exclusiveMinimum: true\n" + "          maximum: 99999\n" + "          exclusiveMaximum: true";
    OpenAPIV3Parser parser = new OpenAPIV3Parser();
    SwaggerParseResult result = parser.readContents(yaml, null, null);
    assertTrue(result.getOpenAPI().getComponents().getSchemas().get("Person") instanceof Schema);
    assertTrue(result.getOpenAPI().getComponents().getSchemas().get("Address") instanceof Schema);
    Schema person = result.getOpenAPI().getComponents().getSchemas().get("Person");
    Schema property = (Schema) person.getProperties().get("address");
    assertTrue(property.get$ref() != null);
    Schema zip = (Schema) (result.getOpenAPI().getComponents().getSchemas().get("Address")).getProperties().get("zip");
    assertTrue(zip instanceof IntegerSchema);
    IntegerSchema zipProperty = (IntegerSchema) zip;
    assertEquals(zipProperty.getMinimum(), new BigDecimal("0"));
    assertTrue(zipProperty.getExclusiveMinimum());
    assertEquals(zipProperty.getMaximum(), new BigDecimal("99999"));
    assertTrue(zipProperty.getExclusiveMaximum());
}
Also used : DateSchema(io.swagger.v3.oas.models.media.DateSchema) ComposedSchema(io.swagger.v3.oas.models.media.ComposedSchema) DateTimeSchema(io.swagger.v3.oas.models.media.DateTimeSchema) ByteArraySchema(io.swagger.v3.oas.models.media.ByteArraySchema) IntegerSchema(io.swagger.v3.oas.models.media.IntegerSchema) StringSchema(io.swagger.v3.oas.models.media.StringSchema) ObjectSchema(io.swagger.v3.oas.models.media.ObjectSchema) ArraySchema(io.swagger.v3.oas.models.media.ArraySchema) Schema(io.swagger.v3.oas.models.media.Schema) MapSchema(io.swagger.v3.oas.models.media.MapSchema) BinarySchema(io.swagger.v3.oas.models.media.BinarySchema) IntegerSchema(io.swagger.v3.oas.models.media.IntegerSchema) SwaggerParseResult(io.swagger.v3.parser.core.models.SwaggerParseResult) OpenAPIV3Parser(io.swagger.v3.parser.OpenAPIV3Parser) BigDecimal(java.math.BigDecimal) Test(org.testng.annotations.Test)

Aggregations

IntegerSchema (io.swagger.v3.oas.models.media.IntegerSchema)6 Schema (io.swagger.v3.oas.models.media.Schema)6 StringSchema (io.swagger.v3.oas.models.media.StringSchema)6 Test (org.testng.annotations.Test)6 Operation (io.swagger.v3.oas.annotations.Operation)5 ApiResponses (io.swagger.v3.oas.annotations.responses.ApiResponses)5 GluuCustomPerson (org.gluu.oxtrust.model.GluuCustomPerson)4 ProtectedApi (org.gluu.oxtrust.service.filter.ProtectedApi)4 Person (io.swagger.v3.core.oas.models.Person)3 OpenAPI (io.swagger.v3.oas.models.OpenAPI)3 Operation (io.swagger.v3.oas.models.Operation)3 PathItem (io.swagger.v3.oas.models.PathItem)3 Contact (io.swagger.v3.oas.models.info.Contact)3 Info (io.swagger.v3.oas.models.info.Info)3 ArraySchema (io.swagger.v3.oas.models.media.ArraySchema)3 Parameter (io.swagger.v3.oas.models.parameters.Parameter)3 Server (io.swagger.v3.oas.models.servers.Server)3 BinarySchema (io.swagger.v3.oas.models.media.BinarySchema)2 ByteArraySchema (io.swagger.v3.oas.models.media.ByteArraySchema)2 ComposedSchema (io.swagger.v3.oas.models.media.ComposedSchema)2