Search in sources :

Example 56 with Schema

use of io.swagger.v3.oas.annotations.media.Schema in project swagger-core by swagger-api.

the class InheritedBeanTest method testMultipleInheritedChildBean.

@Test
public void testMultipleInheritedChildBean() throws Exception {
    final Schema subModel = context.resolve(new AnnotatedType(MultipleSub1Bean.class));
    assertNotNull(subModel);
    // make sure child points at parent
    assertTrue(subModel instanceof ComposedSchema);
    ComposedSchema cm = (ComposedSchema) subModel;
    assertEquals(cm.getAllOf().get(0).get$ref(), "#/components/schemas/MultipleBaseBean");
    // make sure parent properties are filtered out of subclass
    assertSub1PropertiesValid(cm.getAllOf().get(1).getProperties());
    final Schema baseModel = context.getDefinedModels().get("MultipleBaseBean");
    assertNotNull(baseModel);
    assertBasePropertiesValid(baseModel.getProperties());
    final Schema sub1Model = context.getDefinedModels().get("MultipleSub1Bean");
    assertNotNull(sub1Model);
    // make sure child points at parent
    assertTrue(sub1Model instanceof ComposedSchema);
    ComposedSchema cm1 = (ComposedSchema) sub1Model;
    assertEquals(cm1.getAllOf().get(0).get$ref(), "#/components/schemas/MultipleBaseBean");
    // make sure parent properties are filtered out of subclass
    assertSub1PropertiesValid(cm1.getAllOf().get(1).getProperties());
    final Schema sub2Model = context.getDefinedModels().get("MultipleSub2Bean");
    assertNotNull(sub2Model);
    assertTrue(sub2Model instanceof ComposedSchema);
    ComposedSchema cm2 = (ComposedSchema) sub2Model;
    assertEquals(cm2.getAllOf().get(0).get$ref(), "#/components/schemas/MultipleBaseBean");
    // make sure parent properties are filtered out of subclass
    assertSub2PropertiesValid(cm2.getAllOf().get(1).getProperties());
}
Also used : AnnotatedType(io.swagger.v3.core.converter.AnnotatedType) ComposedSchema(io.swagger.v3.oas.models.media.ComposedSchema) Schema(io.swagger.v3.oas.models.media.Schema) ComposedSchema(io.swagger.v3.oas.models.media.ComposedSchema) Test(org.testng.annotations.Test) AfterTest(org.testng.annotations.AfterTest)

Example 57 with Schema

use of io.swagger.v3.oas.annotations.media.Schema in project swagger-core by swagger-api.

the class InheritedBeanTest method testHierarchy.

@Test
public void testHierarchy() throws Exception {
    final Schema baseModel = context.resolve(new AnnotatedType(BaseBean3.class));
    assertNotNull(baseModel);
    assertBasePropertiesValid(baseModel.getProperties());
    assertEquals(baseModel.getDiscriminator().getPropertyName(), "type");
    assertEquals(baseModel.getDiscriminator().getMapping().get("ChildBean3Mapped"), "#/components/schemas/ChildBean3");
    final Schema subModel = context.getDefinedModels().get("ChildBean3");
    assertNotNull(subModel);
    // make sure child points at parent
    assertTrue(subModel instanceof ComposedSchema);
    ComposedSchema cm = (ComposedSchema) subModel;
    assertEquals(cm.getAllOf().get(0).get$ref(), "#/components/schemas/BaseBean3");
    // make sure parent properties are filtered out of subclass
    assertSub1PropertiesValid(cm.getAllOf().get(1).getProperties());
    // assert grandchild
    final Schema subSubModel = context.getDefinedModels().get("GrandChildBean3");
    assertNotNull(subSubModel);
    // make sure child points at parent
    assertTrue(subSubModel instanceof ComposedSchema);
    cm = (ComposedSchema) subSubModel;
    assertEquals(cm.getAllOf().get(0).get$ref(), "#/components/schemas/ChildBean3");
    // make sure parent properties are filtered out of subclass
    assertSub2PropertiesValid(cm.getAllOf().get(1).getProperties());
}
Also used : AnnotatedType(io.swagger.v3.core.converter.AnnotatedType) ComposedSchema(io.swagger.v3.oas.models.media.ComposedSchema) Schema(io.swagger.v3.oas.models.media.Schema) ComposedSchema(io.swagger.v3.oas.models.media.ComposedSchema) Test(org.testng.annotations.Test) AfterTest(org.testng.annotations.AfterTest)

Example 58 with Schema

use of io.swagger.v3.oas.annotations.media.Schema in project swagger-core by swagger-api.

the class InheritedBeanTest method testInheritedBean.

@Test
public void testInheritedBean() throws Exception {
    final Schema baseModel = context.resolve(new AnnotatedType(BaseBean.class));
    assertNotNull(baseModel);
    assertBasePropertiesValid(baseModel.getProperties());
    assertEquals(baseModel.getDiscriminator().getPropertyName(), "type");
    assertEquals(baseModel.getDiscriminator().getMapping().get("Sub1BeanMapped"), "#/components/schemas/Sub1Bean");
    final Schema subModel = context.getDefinedModels().get("Sub1Bean");
    assertNotNull(subModel);
    // make sure child points at parent
    assertTrue(subModel instanceof ComposedSchema);
    ComposedSchema cm = (ComposedSchema) subModel;
    assertEquals(cm.getAllOf().get(0).get$ref(), "#/components/schemas/BaseBean");
    // make sure parent properties are filtered out of subclass
    assertSub1PropertiesValid(cm.getAllOf().get(1).getProperties());
}
Also used : AnnotatedType(io.swagger.v3.core.converter.AnnotatedType) ComposedSchema(io.swagger.v3.oas.models.media.ComposedSchema) Schema(io.swagger.v3.oas.models.media.Schema) ComposedSchema(io.swagger.v3.oas.models.media.ComposedSchema) Test(org.testng.annotations.Test) AfterTest(org.testng.annotations.AfterTest)

Example 59 with Schema

use of io.swagger.v3.oas.annotations.media.Schema in project swagger-core by swagger-api.

the class InheritedBeanTest method assertSub1PropertiesValid.

private void assertSub1PropertiesValid(Map<String, Schema> subProperties) {
    assertEquals(subProperties.size(), 1);
    for (Map.Entry<String, Schema> entry : subProperties.entrySet()) {
        final String name = entry.getKey();
        final Schema prop = entry.getValue();
        if ("c".equals(name)) {
            assertEquals(prop.getType(), "integer");
            assertEquals(prop.getFormat(), "int32");
        }
    }
}
Also used : ComposedSchema(io.swagger.v3.oas.models.media.ComposedSchema) Schema(io.swagger.v3.oas.models.media.Schema) Map(java.util.Map)

Example 60 with Schema

use of io.swagger.v3.oas.annotations.media.Schema in project swagger-core by swagger-api.

the class InheritedBeanTest method assertBasePropertiesValid.

private void assertBasePropertiesValid(Map<String, Schema> baseProperites) {
    assertEquals(baseProperites.size(), 3);
    for (Map.Entry<String, Schema> entry : baseProperites.entrySet()) {
        final String name = entry.getKey();
        final Schema prop = entry.getValue();
        if ("type".equals(name)) {
            assertEquals(prop.getType(), "string");
        } else if ("a".equals(name)) {
            assertEquals(prop.getType(), "integer");
            assertEquals(prop.getFormat(), "int32");
        } else if ("b".equals(name)) {
            assertEquals(prop.getType(), "string");
        }
    }
}
Also used : ComposedSchema(io.swagger.v3.oas.models.media.ComposedSchema) Schema(io.swagger.v3.oas.models.media.Schema) Map(java.util.Map)

Aggregations

Test (org.testng.annotations.Test)257 Schema (io.swagger.v3.oas.models.media.Schema)234 ArraySchema (io.swagger.v3.oas.models.media.ArraySchema)141 StringSchema (io.swagger.v3.oas.models.media.StringSchema)126 IntegerSchema (io.swagger.v3.oas.models.media.IntegerSchema)112 OpenAPI (io.swagger.v3.oas.models.OpenAPI)68 NumberSchema (io.swagger.v3.oas.models.media.NumberSchema)65 MapSchema (io.swagger.v3.oas.models.media.MapSchema)62 ObjectSchema (io.swagger.v3.oas.models.media.ObjectSchema)60 AnnotatedType (io.swagger.v3.core.converter.AnnotatedType)58 ComposedSchema (io.swagger.v3.oas.models.media.ComposedSchema)51 DateTimeSchema (io.swagger.v3.oas.models.media.DateTimeSchema)47 Operation (io.swagger.v3.oas.annotations.Operation)44 DateSchema (io.swagger.v3.oas.models.media.DateSchema)44 ApiResponses (io.swagger.v3.oas.annotations.responses.ApiResponses)42 ProtectedApi (org.gluu.oxtrust.service.filter.ProtectedApi)42 Parameter (io.swagger.v3.oas.models.parameters.Parameter)33 BooleanSchema (io.swagger.v3.oas.models.media.BooleanSchema)32 ModelConverterContextImpl (io.swagger.v3.core.converter.ModelConverterContextImpl)25 Components (io.swagger.v3.oas.models.Components)23