Search in sources :

Example 91 with Model

use of io.swagger.models.Model in project swagger-core by swagger-api.

the class ContainerTest method testComplexMap.

@Test
public void testComplexMap() throws Exception {
    ModelResolver resolver = new ModelResolver(mapper());
    final ModelConverterContextImpl context = new ModelConverterContextImpl(resolver);
    context.resolve(WrapperType.class);
    final Map<String, Model> models = context.getDefinedModels();
    final Model innerType = models.get("InnerType");
    assertNotNull(innerType);
    final Map<String, Property> innerProps = innerType.getProperties();
    assertEquals(innerProps.size(), 2);
    final Property foo = innerProps.get("foo");
    assertEquals(foo.getType(), "integer");
    assertEquals(foo.getFormat(), "int32");
    final Property name = innerProps.get("name");
    assertEquals(name.getType(), "string");
    final Model wrapperType = models.get("WrapperType");
    assertNotNull(wrapperType);
    assertEquals(wrapperType.getProperties().get("innerType").getType(), "object");
}
Also used : Model(io.swagger.models.Model) MapProperty(io.swagger.models.properties.MapProperty) ArrayProperty(io.swagger.models.properties.ArrayProperty) Property(io.swagger.models.properties.Property) ModelConverterContextImpl(io.swagger.converter.ModelConverterContextImpl) Test(org.testng.annotations.Test)

Example 92 with Model

use of io.swagger.models.Model in project swagger-core by swagger-api.

the class InheritedBeanTest method testMultipleInheritedBean.

@Test
public void testMultipleInheritedBean() throws Exception {
    final Model baseModel = context.resolve(MultipleBaseBean.class);
    assertNotNull(baseModel);
    assertBasePropertiesValid(baseModel.getProperties());
    final Model sub1Model = context.getDefinedModels().get("MultipleSub1Bean");
    assertNotNull(sub1Model);
    // make sure child points at parent
    assertTrue(sub1Model instanceof ComposedModel);
    ComposedModel cm1 = (ComposedModel) sub1Model;
    assertEquals(cm1.getParent().getReference(), "#/definitions/MultipleBaseBean");
    // make sure parent properties are filtered out of subclass
    assertSub1PropertiesValid(cm1.getChild().getProperties());
    final Model sub2Model = context.getDefinedModels().get("MultipleSub2Bean");
    assertNotNull(sub2Model);
    // make sure child points at parent
    assertTrue(sub2Model instanceof ComposedModel);
    ComposedModel cm2 = (ComposedModel) sub2Model;
    assertEquals(cm2.getParent().getReference(), "#/definitions/MultipleBaseBean");
    // make sure parent properties are filtered out of subclass
    assertSub2PropertiesValid(cm2.getChild().getProperties());
}
Also used : ComposedModel(io.swagger.models.ComposedModel) ComposedModel(io.swagger.models.ComposedModel) Model(io.swagger.models.Model) ApiModel(io.swagger.annotations.ApiModel) Test(org.testng.annotations.Test) BeforeTest(org.testng.annotations.BeforeTest)

Example 93 with Model

use of io.swagger.models.Model in project swagger-core by swagger-api.

the class InheritedBeanTest method testInheritedBean.

@Test
public void testInheritedBean() throws Exception {
    final Model baseModel = context.resolve(BaseBean.class);
    assertNotNull(baseModel);
    assertBasePropertiesValid(baseModel.getProperties());
    final Model subModel = context.getDefinedModels().get("Sub1Bean");
    assertNotNull(subModel);
    // make sure child points at parent
    assertTrue(subModel instanceof ComposedModel);
    ComposedModel cm = (ComposedModel) subModel;
    assertEquals(cm.getParent().getReference(), "#/definitions/BaseBean");
    // make sure parent properties are filtered out of subclass
    assertSub1PropertiesValid(cm.getChild().getProperties());
}
Also used : ComposedModel(io.swagger.models.ComposedModel) ComposedModel(io.swagger.models.ComposedModel) Model(io.swagger.models.Model) ApiModel(io.swagger.annotations.ApiModel) Test(org.testng.annotations.Test) BeforeTest(org.testng.annotations.BeforeTest)

Example 94 with Model

use of io.swagger.models.Model in project swagger-core by swagger-api.

the class InheritedBeanTest method testMultipleInheritedChildBean.

@Test
public void testMultipleInheritedChildBean() throws Exception {
    final Model subModel = context.resolve(MultipleSub1Bean.class);
    assertNotNull(subModel);
    // make sure child points at parent
    assertTrue(subModel instanceof ComposedModel);
    ComposedModel cm = (ComposedModel) subModel;
    assertEquals(cm.getParent().getReference(), "#/definitions/MultipleBaseBean");
    // make sure parent properties are filtered out of subclass
    assertSub1PropertiesValid(cm.getChild().getProperties());
    final Model baseModel = context.getDefinedModels().get("MultipleBaseBean");
    assertNotNull(baseModel);
    assertBasePropertiesValid(baseModel.getProperties());
    final Model sub1Model = context.getDefinedModels().get("MultipleSub1Bean");
    assertNotNull(sub1Model);
    // make sure child points at parent
    assertTrue(sub1Model instanceof ComposedModel);
    ComposedModel cm1 = (ComposedModel) sub1Model;
    assertEquals(cm1.getParent().getReference(), "#/definitions/MultipleBaseBean");
    // make sure parent properties are filtered out of subclass
    assertSub1PropertiesValid(cm1.getChild().getProperties());
    final Model sub2Model = context.getDefinedModels().get("MultipleSub2Bean");
    assertNotNull(sub2Model);
    // make sure child points at parent
    assertTrue(sub2Model instanceof ComposedModel);
    ComposedModel cm2 = (ComposedModel) sub2Model;
    assertEquals(cm2.getParent().getReference(), "#/definitions/MultipleBaseBean");
    // make sure parent properties are filtered out of subclass
    assertSub2PropertiesValid(cm2.getChild().getProperties());
}
Also used : ComposedModel(io.swagger.models.ComposedModel) ComposedModel(io.swagger.models.ComposedModel) Model(io.swagger.models.Model) ApiModel(io.swagger.annotations.ApiModel) Test(org.testng.annotations.Test) BeforeTest(org.testng.annotations.BeforeTest)

Example 95 with Model

use of io.swagger.models.Model in project swagger-core by swagger-api.

the class SimpleReaderTest method checkResponseModelsProcessing.

@Test(description = "check response models processing")
public void checkResponseModelsProcessing() {
    Swagger swagger = getSwagger(ResourceWithTypedResponses.class);
    assertEquals(swagger.getDefinitions().keySet(), Arrays.asList("Tag"));
    for (Map.Entry<String, Path> entry : swagger.getPaths().entrySet()) {
        String name = entry.getKey().substring(entry.getKey().lastIndexOf("/") + 1);
        if ("testPrimitiveResponses".equals(name)) {
            Map<String, String[]> expected = ImmutableMap.of("400", new String[] { "string", "uri" }, "401", new String[] { "string", "url" }, "402", new String[] { "string", "uuid" }, "403", new String[] { "integer", "int64" }, "404", new String[] { "string", null });
            assertEquals(entry.getValue().getGet().getResponses().size(), expected.size());
            for (Map.Entry<String, Response> responseEntry : entry.getValue().getGet().getResponses().entrySet()) {
                String[] expectedProp = expected.get(responseEntry.getKey());
                Property property = responseEntry.getValue().getSchema();
                assertEquals(property.getType(), expectedProp[0]);
                assertEquals(property.getFormat(), expectedProp[1]);
            }
        } else {
            Operation op = entry.getValue().getGet();
            Property response = op.getResponses().get("200").getSchema();
            Model model = ((BodyParameter) op.getParameters().get(0)).getSchema();
            assertEquals(op.getParameters().size(), 1);
            if ("testObjectResponse".equals(name)) {
                assertEquals(((RefProperty) response).getSimpleRef(), "Tag");
                assertEquals(((RefModel) model).getSimpleRef(), "Tag");
            } else if ("testObjectsResponse".equals(name)) {
                assertEquals(((RefProperty) ((ArrayProperty) response).getItems()).getSimpleRef(), "Tag");
                assertEquals(((RefProperty) ((ArrayModel) model).getItems()).getSimpleRef(), "Tag");
            } else if ("testStringResponse".equals(name)) {
                assertEquals(response.getClass(), StringProperty.class);
                assertEquals(((ModelImpl) model).getType(), "string");
            } else if ("testStringsResponse".equals(name)) {
                assertEquals(((ArrayProperty) response).getItems().getClass(), StringProperty.class);
                assertEquals(((ArrayModel) model).getItems().getClass(), StringProperty.class);
            } else if ("testMapResponse".equals(name)) {
                assertEquals(((RefProperty) ((MapProperty) response).getAdditionalProperties()).getSimpleRef(), "Tag");
                assertNull(model.getProperties());
                assertEquals(((RefProperty) ((ModelImpl) model).getAdditionalProperties()).getSimpleRef(), "Tag");
            } else {
                fail(String.format("Unexpected property: %s", name));
            }
        }
    }
}
Also used : Path(io.swagger.models.Path) MapProperty(io.swagger.models.properties.MapProperty) StringProperty(io.swagger.models.properties.StringProperty) Operation(io.swagger.models.Operation) NicknamedOperation(io.swagger.resources.NicknamedOperation) BodyParameter(io.swagger.models.parameters.BodyParameter) RefProperty(io.swagger.models.properties.RefProperty) ResourceWithResponse(io.swagger.resources.ResourceWithResponse) Response(io.swagger.models.Response) Swagger(io.swagger.models.Swagger) Model(io.swagger.models.Model) ResourceWithEmptyModel(io.swagger.resources.ResourceWithEmptyModel) RefModel(io.swagger.models.RefModel) ArrayModel(io.swagger.models.ArrayModel) ModelImpl(io.swagger.models.ModelImpl) Map(java.util.Map) ImmutableMap(com.google.common.collect.ImmutableMap) StringProperty(io.swagger.models.properties.StringProperty) ArrayProperty(io.swagger.models.properties.ArrayProperty) Property(io.swagger.models.properties.Property) MapProperty(io.swagger.models.properties.MapProperty) RefProperty(io.swagger.models.properties.RefProperty) IntegerProperty(io.swagger.models.properties.IntegerProperty) Test(org.testng.annotations.Test)

Aggregations

Model (io.swagger.models.Model)108 Test (org.testng.annotations.Test)90 Property (io.swagger.models.properties.Property)52 StringProperty (io.swagger.models.properties.StringProperty)34 ArrayModel (io.swagger.models.ArrayModel)30 ArrayProperty (io.swagger.models.properties.ArrayProperty)27 ModelImpl (io.swagger.models.ModelImpl)24 RefProperty (io.swagger.models.properties.RefProperty)23 RefModel (io.swagger.models.RefModel)20 ApiModelProperty (io.swagger.annotations.ApiModelProperty)19 ApiModel (io.swagger.annotations.ApiModel)16 BodyParameter (io.swagger.models.parameters.BodyParameter)15 IntegerProperty (io.swagger.models.properties.IntegerProperty)15 Operation (io.swagger.models.Operation)14 MapProperty (io.swagger.models.properties.MapProperty)14 Path (io.swagger.models.Path)13 LongProperty (io.swagger.models.properties.LongProperty)13 ComposedModel (io.swagger.models.ComposedModel)12 EmptyModel (io.swagger.models.EmptyModel)12 JacksonReadonlyModel (io.swagger.models.JacksonReadonlyModel)12