forked from loafle/openapi-generator-original
[core] support for 'x-enum-varnames' for enums in arrays (#1703)
This commit is contained in:
@@ -4076,7 +4076,8 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
enumVars.add(enumVar);
|
||||
}
|
||||
// if "x-enum-varnames" defined, update varnames
|
||||
updateEnumVarsWithExtensions(enumVars, var.getVendorExtensions());
|
||||
Map<String, Object> extensions = var.mostInnerItems != null ? var.mostInnerItems.getVendorExtensions() : var.getVendorExtensions();
|
||||
updateEnumVarsWithExtensions(enumVars, extensions);
|
||||
allowableValues.put("enumVars", enumVars);
|
||||
|
||||
// handle default value for enum, e.g. available => StatusEnum.AVAILABLE
|
||||
|
||||
@@ -232,6 +232,22 @@ public class JavaClientCodegenTest {
|
||||
Assert.assertEquals(testedEnumVar.getOrDefault("value", ""), "1");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateCodegenPropertyEnumWithCustomNames() {
|
||||
final JavaClientCodegen codegen = new JavaClientCodegen();
|
||||
CodegenProperty array = codegenPropertyWithArrayOfIntegerValues();
|
||||
array.getItems().setVendorExtensions(Collections.singletonMap("x-enum-varnames", Collections.singletonList("ONE")));
|
||||
|
||||
codegen.updateCodegenPropertyEnum(array);
|
||||
|
||||
List<Map<String, String>> enumVars = (List<Map<String, String>>) array.getItems().getAllowableValues().get("enumVars");
|
||||
Assert.assertNotNull(enumVars);
|
||||
Map<String, String> testedEnumVar = enumVars.get(0);
|
||||
Assert.assertNotNull(testedEnumVar);
|
||||
Assert.assertEquals(testedEnumVar.getOrDefault("name", ""),"ONE");
|
||||
Assert.assertEquals(testedEnumVar.getOrDefault("value", ""), "1");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGeneratePing() throws Exception {
|
||||
Map<String, Object> properties = new HashMap<>();
|
||||
|
||||
Reference in New Issue
Block a user