Skip to content

Commit abf7319

Browse files
committed
Fix defaultValue for AdditionalProperties fields when using generateAliasAsModel
1 parent f0e1a74 commit abf7319

File tree

3 files changed

+50
-0
lines changed

3 files changed

+50
-0
lines changed

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868

6969
import static org.openapitools.codegen.utils.CamelizeOption.*;
7070
import static org.openapitools.codegen.utils.ModelUtils.getSchemaItems;
71+
import static org.openapitools.codegen.utils.ModelUtils.isGenerateAliasAsModel;
7172
import static org.openapitools.codegen.utils.OnceLogger.once;
7273
import static org.openapitools.codegen.utils.StringUtils.*;
7374

@@ -1329,6 +1330,11 @@ public String toDefaultValue(CodegenProperty cp, Schema schema) {
13291330
return null;
13301331
}
13311332

1333+
if (isGenerateAliasAsModel()) {
1334+
// additionalProperties generated
1335+
return null;
1336+
}
1337+
13321338
return String.format(Locale.ROOT, "new %s<>()",
13331339
instantiationTypes().getOrDefault("map", "HashMap"));
13341340
} else if (ModelUtils.isIntegerSchema(schema)) {

modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3514,5 +3514,47 @@ public void testAdditionalPropertiesWithGenerateAliasAsModelGeneratesCorrectHash
35143514
JavaFileAssert.assertThat(files.get("AdditionalPropertiesOnlyTypeString.java")).fileContains(
35153515
"AdditionalPropertiesOnlyTypeString additionalPropertiesOnlyTypeString = (AdditionalPropertiesOnlyTypeString) o;",
35163516
"return Objects.equals(this.additionalProperties, additionalPropertiesOnlyTypeString.additionalProperties)");
3517+
3518+
JavaFileAssert.assertThat(files.get("Response.java")).fileContains("AdditionalPropertiesOnlyTypeObject additionalPropertiesOnlyTypeObject;");
3519+
}
3520+
3521+
@Test
3522+
public void testAdditionalPropertiesWithGenerateAliasForMicroProfile() {
3523+
final Path output = newTempFolder();
3524+
final CodegenConfigurator configurator = new CodegenConfigurator()
3525+
.setGeneratorName("java")
3526+
.setGenerateAliasAsModel(true)
3527+
.setLibrary(MICROPROFILE)
3528+
.setInputSpec("src/test/resources/3_0/additionalProperties.yaml")
3529+
.setOutputDir(output.toString().replace("\\", "/"));
3530+
3531+
Map<String, File> files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate()
3532+
.stream().collect(Collectors.toMap(File::getName, Function.identity()));
3533+
3534+
JavaFileAssert.assertThat(files.get("AdditionalPropertiesOnlyTypeObject.java")).fileContains(
3535+
"extends HashMap<String, Object>",
3536+
"return Objects.hash(super.hashCode())",
3537+
"return super.equals(o)");
3538+
JavaFileAssert.assertThat(files.get("AdditionalPropertiesOnlyTypeString.java")).fileContains(
3539+
"extends HashMap<String, String>",
3540+
"return Objects.hash(super.hashCode())",
3541+
"return super.equals(o)");
3542+
3543+
JavaFileAssert.assertThat(files.get("AdditionalPropertiesOnlyTrue.java")).fileContains(
3544+
"extends HashMap<String, Object>",
3545+
"return Objects.hash(super.hashCode())",
3546+
"return super.equals(o)");
3547+
JavaFileAssert.assertThat(files.get("AdditionalPropertiesTypeObject.java")).fileContains(
3548+
"HashMap<String, Object>",
3549+
"return Objects.hash(name, super.hashCode())");
3550+
3551+
JavaFileAssert.assertThat(files.get("AdditionalPropertiesTypeString.java")).fileContains(
3552+
"HashMap<String, String>",
3553+
"return Objects.hash(name, super.hashCode())");
3554+
JavaFileAssert.assertThat(files.get("AdditionalPropertiesTrue.java")).fileContains(
3555+
"HashMap<String, Object>",
3556+
"return Objects.hash(name, super.hashCode())");
3557+
3558+
JavaFileAssert.assertThat(files.get("Response.java")).fileContains("AdditionalPropertiesOnlyTypeObject additionalPropertiesOnlyTypeObject;");
35173559
}
35183560
}

modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5407,5 +5407,7 @@ public void testAdditionalPropertiesWithGenerateAliasAsModelGeneratesCorrectHash
54075407
JavaFileAssert.assertThat(files.get("AdditionalPropertiesOnlyTypeString.java")).fileContains(
54085408
"AdditionalPropertiesOnlyTypeString additionalPropertiesOnlyTypeString = (AdditionalPropertiesOnlyTypeString) o;",
54095409
"return Objects.equals(this.additionalProperties, additionalPropertiesOnlyTypeString.additionalProperties);");
5410+
5411+
JavaFileAssert.assertThat(files.get("Response.java")).fileContains("AdditionalPropertiesOnlyTypeObject additionalPropertiesOnlyTypeObject;");
54105412
}
54115413
}

0 commit comments

Comments
 (0)