forked from loafle/openapi-generator-original
[Java][Spring] enumUnknownDefaultCase true now returns correctly in fromValue (#18914)
* enumUnknownDefaultCase true added for Spring * Resource added for test * Updated tests --------- Co-authored-by: Dean <dean.kane@opencastsoftware.com>
This commit is contained in:
@@ -55,6 +55,6 @@
|
||||
return b;
|
||||
}
|
||||
}
|
||||
{{#isNullable}}return null;{{/isNullable}}{{^isNullable}}throw new IllegalArgumentException("Unexpected value '" + value + "'");{{/isNullable}}
|
||||
{{#isNullable}}return null;{{/isNullable}}{{^isNullable}}{{#enumUnknownDefaultCase}}{{#allowableValues}}{{#enumVars}}{{#-last}}return {{{name}}};{{/-last}}{{/enumVars}}{{/allowableValues}}{{/enumUnknownDefaultCase}}{{^enumUnknownDefaultCase}}throw new IllegalArgumentException("Unexpected value '" + value + "'");{{/enumUnknownDefaultCase}}{{/isNullable}}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,6 +56,6 @@ public enum {{{datatypeWithEnum}}}{{^datatypeWithEnum}}{{{classname}}}{{/datatyp
|
||||
return b;
|
||||
}
|
||||
}
|
||||
{{#isNullable}}return null;{{/isNullable}}{{^isNullable}}throw new IllegalArgumentException("Unexpected value '" + value + "'");{{/isNullable}}
|
||||
{{#isNullable}}return null;{{/isNullable}}{{^isNullable}}{{#enumUnknownDefaultCase}}{{#allowableValues}}{{#enumVars}}{{#-last}}return {{{name}}};{{/-last}}{{/enumVars}}{{/allowableValues}}{{/enumUnknownDefaultCase}}{{^enumUnknownDefaultCase}}throw new IllegalArgumentException("Unexpected value '" + value + "'");{{/enumUnknownDefaultCase}}{{/isNullable}}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4865,4 +4865,29 @@ public class SpringCodegenTest {
|
||||
.toMethod()
|
||||
.toFileAssert();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEnumUnknownDefaultCaseDeserializationTrue_issue13241() throws IOException {
|
||||
|
||||
SpringCodegen codegen = new SpringCodegen();
|
||||
codegen.setLibrary(SPRING_BOOT);
|
||||
codegen.additionalProperties().put(CodegenConstants.ENUM_UNKNOWN_DEFAULT_CASE, "true");
|
||||
|
||||
Map<String, File> files = generateFiles(codegen, "src/test/resources/bugs/issue_13241.yaml");
|
||||
|
||||
JavaFileAssert.assertThat(files.get("Color.java"))
|
||||
.assertMethod("fromValue").bodyContainsLines("return UNKNOWN_DEFAULT_OPEN_API");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEnumUnknownDefaultCaseDeserializationNotSet_issue13241() throws IOException {
|
||||
|
||||
SpringCodegen codegen = new SpringCodegen();
|
||||
codegen.setLibrary(SPRING_BOOT);
|
||||
Map<String, File> files = generateFiles(codegen, "src/test/resources/bugs/issue_13241.yaml");
|
||||
|
||||
JavaFileAssert.assertThat(files.get("Color.java"))
|
||||
.assertMethod("fromValue").bodyContainsLines("throw new IllegalArgumentException(\"Unexpected value '\" + value + \"'\");");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
openapi: "3.0.0"
|
||||
info:
|
||||
version: 2.0.0
|
||||
title: test
|
||||
paths:
|
||||
/pets:
|
||||
get:
|
||||
summary: List all pets
|
||||
operationId: listPets
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
components:
|
||||
schemas:
|
||||
Color:
|
||||
type: string
|
||||
enum: [RED, BLUE, GREEN]
|
||||
Reference in New Issue
Block a user