|
16 | 16 | import org.testng.annotations.Test; |
17 | 17 |
|
18 | 18 | import java.io.File; |
| 19 | +import java.util.ArrayList; |
| 20 | +import java.util.Collections; |
| 21 | +import java.util.HashMap; |
19 | 22 | import java.util.Map; |
20 | 23 | import java.util.function.Function; |
21 | 24 | import java.util.stream.Collectors; |
@@ -278,9 +281,70 @@ public void testEnumPropertyWithDefaultValue() { |
278 | 281 | // Assert the enum default value is properly generated |
279 | 282 | CodegenProperty cp1 = cm1.vars.get(0); |
280 | 283 | Assert.assertEquals(cp1.getEnumName(), "PropertyName"); |
281 | | - Assert.assertEquals(cp1.getDefaultValue(), "PropertyName.vALUE"); |
| 284 | + Assert.assertEquals(cp1.getDefaultValue(), "PropertyName.VALUE"); |
282 | 285 | } |
283 | 286 |
|
| 287 | + @Test(description = "Issue #3804") |
| 288 | + public void testEnumPropertyWithCapitalization() { |
| 289 | + final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/kotlin/issue3804-enum-enum-capitalization.yaml"); |
| 290 | + final AbstractKotlinCodegen codegen = new P_AbstractKotlinCodegen(); |
| 291 | + |
| 292 | + Schema test1 = openAPI.getComponents().getSchemas().get("ModelWithEnumPropertyHavingDefault"); |
| 293 | + CodegenModel cm1 = codegen.fromModel("ModelWithEnumPropertyHavingDefault", test1); |
| 294 | + |
| 295 | + // We need to postProcess the model for enums to be processed |
| 296 | + codegen.postProcessModels(createCodegenModelWrapper(cm1)); |
| 297 | + |
| 298 | + // Assert the enums are generated without changing capitalization |
| 299 | + CodegenProperty cp0 = cm1.vars.get(0); |
| 300 | + Assert.assertEquals(cp0.getEnumName(), "PropertyName"); |
| 301 | + Assert.assertEquals(((HashMap)((ArrayList) cp0.getAllowableValues().get("enumVars")).get(0)).get("name"), "VALUE"); |
| 302 | + CodegenProperty cp1 = cm1.vars.get(1); |
| 303 | + Assert.assertEquals(cp1.getEnumName(), "PropertyName2"); |
| 304 | + Assert.assertEquals(((HashMap)((ArrayList) cp1.getAllowableValues().get("enumVars")).get(0)).get("name"), "Value"); |
| 305 | + CodegenProperty cp2 = cm1.vars.get(2); |
| 306 | + Assert.assertEquals(cp2.getEnumName(), "PropertyName3"); |
| 307 | + Assert.assertEquals(((HashMap)((ArrayList) cp2.getAllowableValues().get("enumVars")).get(0)).get("name"), "nonkeywordvalue"); |
| 308 | + } |
| 309 | + |
| 310 | + @Test(description = "Issue #3804") |
| 311 | + public void testEnumPropertyDefaultWithCapitalization() { |
| 312 | + final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/kotlin/issue3804-enum-enum-capitalization.yaml"); |
| 313 | + final AbstractKotlinCodegen codegen = new P_AbstractKotlinCodegen(); |
| 314 | + |
| 315 | + Schema test1 = openAPI.getComponents().getSchemas().get("ModelWithEnumPropertyHavingDefault"); |
| 316 | + CodegenModel cm1 = codegen.fromModel("ModelWithEnumPropertyHavingDefault", test1); |
| 317 | + |
| 318 | + // We need to postProcess the model for enums to be processed |
| 319 | + codegen.postProcessModels(createCodegenModelWrapper(cm1)); |
| 320 | + |
| 321 | + // Assert the enum default value is properly generated |
| 322 | + CodegenProperty cp0 = cm1.vars.get(0); |
| 323 | + Assert.assertEquals(cp0.getDefaultValue(), "PropertyName.VALUE"); |
| 324 | + CodegenProperty cp1 = cm1.vars.get(1); |
| 325 | + Assert.assertEquals(cp1.getDefaultValue(), "PropertyName2.Value"); |
| 326 | + CodegenProperty cp2 = cm1.vars.get(2); |
| 327 | + Assert.assertEquals(cp2.getDefaultValue(), "PropertyName3.nonkeywordvalue"); |
| 328 | + } |
| 329 | + |
| 330 | + @Test(description = "Issue #3804") |
| 331 | + public void testEnumPropertyWithKeyword() { |
| 332 | + final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/kotlin/issue3804-enum-enum-capitalization.yaml"); |
| 333 | + final AbstractKotlinCodegen codegen = new P_AbstractKotlinCodegen(); |
| 334 | + |
| 335 | + Schema test1 = openAPI.getComponents().getSchemas().get("ModelWithEnumPropertyHavingDefault"); |
| 336 | + CodegenModel cm1 = codegen.fromModel("ModelWithEnumPropertyHavingDefault", test1); |
| 337 | + |
| 338 | + // We need to postProcess the model for enums to be processed |
| 339 | + codegen.postProcessModels(createCodegenModelWrapper(cm1)); |
| 340 | + |
| 341 | + // Assert the enum default value is properly generated |
| 342 | + CodegenProperty cp3 = cm1.vars.get(3); |
| 343 | + Assert.assertEquals(cp3.getEnumName(), "PropertyName4"); |
| 344 | + Assert.assertEquals(cp3.getDefaultValue(), "PropertyName4.`value`"); |
| 345 | + } |
| 346 | + |
| 347 | + |
284 | 348 | @Test(description = "Issue #10792") |
285 | 349 | public void handleInheritanceWithObjectTypeShouldNotBeAMap() { |
286 | 350 | Schema parent = new ObjectSchema() |
|
0 commit comments