forked from loafle/openapi-generator-original
Set name for item property from 'x-item-name' annotation if present. (#5461)
This commit is contained in:
parent
8e0d940e0a
commit
b62928ff88
@ -1737,7 +1737,11 @@ public class DefaultCodegen {
|
|||||||
ArrayProperty ap = (ArrayProperty) p;
|
ArrayProperty ap = (ArrayProperty) p;
|
||||||
property.maxItems = ap.getMaxItems();
|
property.maxItems = ap.getMaxItems();
|
||||||
property.minItems = ap.getMinItems();
|
property.minItems = ap.getMinItems();
|
||||||
CodegenProperty cp = fromProperty(property.name, ap.getItems());
|
String itemName = (String) p.getVendorExtensions().get("x-item-name");
|
||||||
|
if (itemName == null) {
|
||||||
|
itemName = property.name;
|
||||||
|
}
|
||||||
|
CodegenProperty cp = fromProperty(itemName, ap.getItems());
|
||||||
updatePropertyForArray(property, cp);
|
updatePropertyForArray(property, cp);
|
||||||
} else if (p instanceof MapProperty) {
|
} else if (p instanceof MapProperty) {
|
||||||
MapProperty ap = (MapProperty) p;
|
MapProperty ap = (MapProperty) p;
|
||||||
|
@ -274,6 +274,42 @@ public class JavaModelTest {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test(description = "convert a model with an array property with item name")
|
||||||
|
public void arrayModelWithItemNameTest() {
|
||||||
|
final Model model = new ModelImpl()
|
||||||
|
.description("a sample model")
|
||||||
|
.property("children", new ArrayProperty()
|
||||||
|
.description("an array property")
|
||||||
|
.items(new RefProperty("#/definitions/Child"))
|
||||||
|
.vendorExtension("x-item-name", "child"));
|
||||||
|
final DefaultCodegen codegen = new JavaClientCodegen();
|
||||||
|
final CodegenModel cm = codegen.fromModel("sample", model);
|
||||||
|
|
||||||
|
Assert.assertEquals(cm.name, "sample");
|
||||||
|
Assert.assertEquals(cm.classname, "Sample");
|
||||||
|
Assert.assertEquals(cm.description, "a sample model");
|
||||||
|
Assert.assertEquals(cm.vars.size(), 1);
|
||||||
|
Assert.assertEquals(Sets.intersection(cm.imports, Sets.newHashSet("List", "Child")).size(), 2);
|
||||||
|
|
||||||
|
final CodegenProperty property = cm.vars.get(0);
|
||||||
|
Assert.assertEquals(property.baseName, "children");
|
||||||
|
Assert.assertEquals(property.complexType, "Child");
|
||||||
|
Assert.assertEquals(property.getter, "getChildren");
|
||||||
|
Assert.assertEquals(property.setter, "setChildren");
|
||||||
|
Assert.assertEquals(property.datatype, "List<Child>");
|
||||||
|
Assert.assertEquals(property.name, "children");
|
||||||
|
Assert.assertEquals(property.defaultValue, "new ArrayList<Child>()");
|
||||||
|
Assert.assertEquals(property.baseType, "List");
|
||||||
|
Assert.assertEquals(property.containerType, "array");
|
||||||
|
Assert.assertFalse(property.required);
|
||||||
|
Assert.assertTrue(property.isContainer);
|
||||||
|
Assert.assertFalse(property.isNotContainer);
|
||||||
|
|
||||||
|
final CodegenProperty itemsProperty = property.items;
|
||||||
|
Assert.assertEquals(itemsProperty.baseName,"child");
|
||||||
|
Assert.assertEquals(itemsProperty.name,"child");
|
||||||
|
}
|
||||||
|
|
||||||
@Test(description = "convert an array model")
|
@Test(description = "convert an array model")
|
||||||
public void arrayModelTest() {
|
public void arrayModelTest() {
|
||||||
final Model model = new ArrayModel()
|
final Model model = new ArrayModel()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user