Skip to content

Commit

Permalink
fixed properties and tests
Browse files Browse the repository at this point in the history
  • Loading branch information
HugoMario committed Jul 5, 2020
1 parent c191bcd commit 9de1f7b
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1401,7 +1401,7 @@ public CodegenModel fromModel(String name, Model model, Map<String, Model> allDe

List<Model> allComponents = composed.getAllOf();
if (allComponents.size() > 0 && composed.getParent() == null) {
composed.setParent(allComponents.get(0));
rebuildComponents(composed);
}

if (supportsInheritance || supportsMixins) {
Expand Down Expand Up @@ -1540,6 +1540,30 @@ public CodegenModel fromModel(String name, Model model, Map<String, Model> allDe
return m;
}

private void rebuildComponents(ComposedModel composedModel) {
List<Model> allComponents = composedModel.getAllOf();
if (allComponents.size() >= 1) {
composedModel.setParent(allComponents.get(0));
if (allComponents.size() >= 2) {
composedModel.setChild(allComponents.get(allComponents.size() - 1));
List<RefModel> interfaces = new ArrayList();
int size = allComponents.size();
Iterator modelIterator = allComponents.subList(1, size - 1).iterator();

while(modelIterator.hasNext()) {
Model model = (Model)modelIterator.next();
if (model instanceof RefModel) {
RefModel ref = (RefModel)model;
interfaces.add(ref);
}
}
composedModel.setInterfaces(interfaces);
} else {
composedModel.setChild(new ModelImpl());
}
}
}

/**
* Recursively look for a discriminator in the interface tree
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public void propertiesInComposedModelTest() {
Assert.assertEquals(composed.vars.get(0).baseName, "modelOneProp");
Assert.assertEquals(composed.vars.get(1).baseName, "properties");
Assert.assertEquals(composed.vars.get(2).baseName, "zones");
Assert.assertNull(composed.parent);
Assert.assertNotNull(composed.parent);
}

@Test(description = "test sanitizeTag")
Expand Down Expand Up @@ -267,11 +267,10 @@ public void simpleCompositionTest() {
final Model model = swagger.getDefinitions().get("SimpleComposition");
CodegenModel composed = codegen.fromModel("SimpleComposition", model, swagger.getDefinitions());

Assert.assertEquals(composed.vars.size(), 3);
Assert.assertEquals(composed.vars.get(0).baseName, "modelOneProp");
Assert.assertEquals(composed.vars.get(1).baseName, "modelTwoProp");
Assert.assertEquals(composed.vars.get(2).baseName, "simpleCompositionProp");
Assert.assertNull(composed.parent);
Assert.assertEquals(composed.vars.size(), 2);
Assert.assertEquals(composed.vars.get(0).baseName, "modelTwoProp");
Assert.assertEquals(composed.vars.get(1).baseName, "simpleCompositionProp");
Assert.assertNotNull(composed.parent);
}

@Test(description = "handle multi level composition")
Expand All @@ -282,13 +281,10 @@ public void multiCompositionTest() {
final Model model = swagger.getDefinitions().get("CompositionOfSimpleComposition");
CodegenModel composed = codegen.fromModel("CompositionOfSimpleComposition", model, swagger.getDefinitions());

Assert.assertEquals(composed.vars.size(), 5);
Assert.assertEquals(composed.vars.get(0).baseName, "modelOneProp");
Assert.assertEquals(composed.vars.get(1).baseName, "modelTwoProp");
Assert.assertEquals(composed.vars.get(2).baseName, "simpleCompositionProp");
Assert.assertEquals(composed.vars.get(3).baseName, "modelThreeProp");
Assert.assertEquals(composed.vars.get(4).baseName, "compositionOfSimpleCompositionProp");
Assert.assertNull(composed.parent);
Assert.assertEquals(composed.vars.size(), 2);
Assert.assertEquals(composed.vars.get(0).baseName, "modelThreeProp");
Assert.assertEquals(composed.vars.get(1).baseName, "compositionOfSimpleCompositionProp");
Assert.assertNotNull(composed.parent);
}

@Test(description = "handle simple inheritance")
Expand All @@ -299,10 +295,11 @@ public void simpleInheritanceTest() {
final Model model = swagger.getDefinitions().get("ChildOfSimpleParent");
CodegenModel child = codegen.fromModel("ChildOfSimpleParent", model, swagger.getDefinitions());

Assert.assertEquals(child.vars.size(), 2);
Assert.assertEquals(child.vars.get(0).baseName, "modelOneProp");
Assert.assertEquals(child.vars.get(1).baseName, "childOfSimpleParentProp");
Assert.assertEquals(child.parent, "SimpleParent");
Assert.assertEquals(child.vars.size(), 3);
Assert.assertEquals(child.vars.get(0).baseName, "disc");
Assert.assertEquals(child.vars.get(1).baseName, "simpleParentProp");
Assert.assertEquals(child.vars.get(2).baseName, "childOfSimpleParentProp");
Assert.assertEquals(child.parent, "ModelOne");
}

@Test(description = "handle multi level inheritance")
Expand Down

0 comments on commit 9de1f7b

Please sign in to comment.