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());
}
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());
}
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());
}
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");
}
}
}
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");
}
}
}
Aggregations