Search in sources :

Example 51 with Schema

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

the class CustomConverterTest method testCustomConverter.

@Test(description = "it should ignore properties with type Bar")
public void testCustomConverter() {
    // add the custom converter
    final ModelConverters converters = new ModelConverters();
    converters.addConverter(new CustomConverter());
    final Schema model = converters.read(Foo.class).get("Foo");
    assertNotNull(model);
    assertEquals(model.getProperties().size(), 1);
    final Schema barProperty = (Schema) model.getProperties().get("bar");
    assertNull(barProperty);
    final Schema titleProperty = (Schema) model.getProperties().get("title");
    assertNotNull(titleProperty);
}
Also used : Schema(io.swagger.v3.oas.models.media.Schema) ModelConverters(io.swagger.v3.core.converter.ModelConverters) Test(org.testng.annotations.Test)

Example 52 with Schema

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

the class GericModelConverter method resolve.

@Override
public Schema resolve(AnnotatedType type, ModelConverterContext context, Iterator<ModelConverter> next) {
    if (type.getType() instanceof Class<?>) {
        Class<?> cls = (Class<?>) type.getType();
        if (GenericModel.class.isAssignableFrom(cls)) {
            Schema impl = new Schema();
            impl.title(cls.getSimpleName());
            for (Entry<String, Class<?>> entry : GenericModel.getDeclaredProperties().entrySet()) {
                impl.addProperties(entry.getKey(), context.resolve(new AnnotatedType(entry.getValue())));
            }
            context.defineModel(impl.getTitle(), impl);
            return impl;
        }
    }
    if (next.hasNext()) {
        return next.next().resolve(type, context, next);
    } else {
        return null;
    }
}
Also used : AnnotatedType(io.swagger.v3.core.converter.AnnotatedType) Schema(io.swagger.v3.oas.models.media.Schema)

Example 53 with Schema

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

the class ComposedSchemaTest method readComposedSchema_ticket2616.

@Test(description = "read single composed schem refs #2616")
public void readComposedSchema_ticket2616() {
    Map<String, Schema> schemas = ModelConverters.getInstance().readAll(TestObject2616.TestObject2616_Schema.class);
    Schema model = schemas.get("TestObject2616_Schema");
    Assert.assertNotNull(model);
    Map<String, Schema> properties = model.getProperties();
    Assert.assertNotNull(properties.get("object"));
    Assert.assertTrue(properties.get("object").get$ref().equals("#/components/schemas/AbstractObject"));
    model = schemas.get("AbstractObject");
    Assert.assertNotNull(model);
    Assert.assertTrue(model instanceof ComposedSchema);
    Assert.assertTrue(((ComposedSchema) model).getOneOf().size() == 2);
    model = schemas.get("AObject");
    Assert.assertNotNull(model);
    model = schemas.get("BObject");
    Assert.assertNotNull(model);
    model = schemas.get("objects");
    Assert.assertNull(model);
}
Also used : TestObject2616(io.swagger.v3.core.resolving.resources.TestObject2616) Schema(io.swagger.v3.oas.models.media.Schema) ArraySchema(io.swagger.v3.oas.models.media.ArraySchema) ComposedSchema(io.swagger.v3.oas.models.media.ComposedSchema) ComposedSchema(io.swagger.v3.oas.models.media.ComposedSchema) Test(org.testng.annotations.Test)

Example 54 with Schema

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

the class ComposedSchemaTest method readComposedSchema_ticket2900.

@Test(description = "read composed schem refs #2900")
public void readComposedSchema_ticket2900() {
    Json.mapper().addMixIn(TestObjectTicket2900.GsonJsonPrimitive.class, TestObjectTicket2900.GsonJsonPrimitiveMixIn.class);
    Map<String, Schema> schemas = ModelConverters.getInstance().readAll(TestObjectTicket2900.class);
    Schema model = schemas.get("SomeDTO");
    Assert.assertNotNull(model);
    Map<String, Schema> properties = model.getProperties();
    Assert.assertNotNull(properties.get("value"));
    Assert.assertEquals(properties.get("value").get$ref(), "#/components/schemas/MyJsonPrimitive");
    Assert.assertEquals(properties.get("valueWithMixIn").get$ref(), "#/components/schemas/GsonJsonPrimitive");
    model = schemas.get("MyJsonPrimitive");
    Assert.assertNotNull(model);
    Assert.assertTrue(((ComposedSchema) model).getOneOf().size() == 2);
    Assert.assertEquals(((ComposedSchema) model).getOneOf().get(0).getType(), "string");
    Assert.assertEquals(((ComposedSchema) model).getOneOf().get(1).getType(), "number");
    model = schemas.get("GsonJsonPrimitive");
    Assert.assertNotNull(model);
    Assert.assertTrue(((ComposedSchema) model).getOneOf().size() == 2);
    Assert.assertEquals(((ComposedSchema) model).getOneOf().get(0).getType(), "string");
    Assert.assertEquals(((ComposedSchema) model).getOneOf().get(1).getType(), "number");
    Assert.assertNull(model.getProperties());
}
Also used : Schema(io.swagger.v3.oas.models.media.Schema) ArraySchema(io.swagger.v3.oas.models.media.ArraySchema) ComposedSchema(io.swagger.v3.oas.models.media.ComposedSchema) TestObjectTicket2900(io.swagger.v3.core.resolving.resources.TestObjectTicket2900) Test(org.testng.annotations.Test)

Example 55 with Schema

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

the class ComposedSchemaTest method readArrayComposedSchema_ticket2616.

@Test(description = "read composed schem refs #2616")
public void readArrayComposedSchema_ticket2616() {
    Map<String, Schema> schemas = ModelConverters.getInstance().readAll(TestObject2616.class);
    Schema model = schemas.get("testObject");
    Assert.assertNotNull(model);
    Map<String, Schema> properties = model.getProperties();
    Assert.assertNotNull(properties.get("objects"));
    Assert.assertTrue(properties.get("objects") instanceof ArraySchema);
    model = schemas.get("AbstractObject");
    Assert.assertNotNull(model);
    Assert.assertTrue(model instanceof ComposedSchema);
    Assert.assertTrue(((ComposedSchema) model).getOneOf().size() == 2);
    model = schemas.get("AObject");
    Assert.assertNotNull(model);
    model = schemas.get("BObject");
    Assert.assertNotNull(model);
    model = schemas.get("objects");
    Assert.assertNull(model);
}
Also used : ArraySchema(io.swagger.v3.oas.models.media.ArraySchema) Schema(io.swagger.v3.oas.models.media.Schema) ArraySchema(io.swagger.v3.oas.models.media.ArraySchema) ComposedSchema(io.swagger.v3.oas.models.media.ComposedSchema) ComposedSchema(io.swagger.v3.oas.models.media.ComposedSchema) Test(org.testng.annotations.Test)

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