Skip to content

Commit

Permalink
Add test case for #336
Browse files Browse the repository at this point in the history
  • Loading branch information
sschnabe committed Dec 24, 2023
1 parent 5a50cbf commit d331480
Show file tree
Hide file tree
Showing 3 changed files with 115 additions and 0 deletions.
91 changes: 91 additions & 0 deletions gen/main/java/issue/_336/ServiceScopes.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
package issue._336;

@jakarta.annotation.Generated("org.openapitools.codegen.languages.MicronautCodegen")
@io.micronaut.serde.annotation.Serdeable
public class ServiceScopes {

@com.fasterxml.jackson.annotation.JsonProperty("foo")
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)
private java.lang.String foo;

@com.fasterxml.jackson.annotation.JsonProperty("bar")
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)
private java.lang.String bar;

private java.util.Map<java.lang.String, java.lang.String> additionalProperties;

// methods

@Override
public boolean equals(Object object) {
if (object == this) {
return true;
}
if (object == null || getClass() != object.getClass()) {
return false;
}
ServiceScopes other = (ServiceScopes) object;
return java.util.Objects.equals(this.additionalProperties, other.additionalProperties)
&& java.util.Objects.equals(foo, other.foo)
&& java.util.Objects.equals(bar, other.bar);
}

@Override
public int hashCode() {
return java.util.Objects.hash(this.additionalProperties, , foo, bar);
}

@Override
public java.lang.String toString() {
return new java.lang.StringBuilder()
.append("ServiceScopes[")
.append("additionalProperties=").append(this.additionalProperties)
.append("foo=").append(foo).append(",")
.append("bar=").append(bar)
.append("]")
.toString();
}

// fluent

public ServiceScopes foo(java.lang.String newFoo) {
this.foo = newFoo;
return this;
}

public ServiceScopes bar(java.lang.String newBar) {
this.bar = newBar;
return this;
}

@com.fasterxml.jackson.annotation.JsonAnyGetter
public java.util.Map<java.lang.String, java.lang.String> getAdditionalProperties() {
return additionalProperties;
}

@com.fasterxml.jackson.annotation.JsonAnySetter
public void setAdditionalProperties(java.lang.String propertyKey, java.lang.String value) {
if (this.additionalProperties == null) {
this.additionalProperties = new java.util.HashMap<>();
}
this.additionalProperties.put(propertyKey, value);
}

// getter/setter

public java.lang.String getFoo() {
return foo;
}

public void setFoo(java.lang.String newFoo) {
this.foo = newFoo;
}

public java.lang.String getBar() {
return bar;
}

public void setBar(java.lang.String newBar) {
this.bar = newBar;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@ void modelWithSuffix() {
generate(configurator("src/test/resources/openapi/issue-318.yaml", "issue._318").setModelNameSuffix("Dto"));
}

@DisplayName("model with additional properties and multiple properties generate invalid hashcode/equals")
@Test
void modelWithAdditionapPropertiesAndMultipleProperties() {
generate(configurator("src/test/resources/openapi/issue-336.yaml", "issue._336").setGenerateAliasAsModel(true));
}

static void generate(CodegenConfigurator configurator) {
var gen = new DefaultGenerator();
gen.setGenerateMetadata(false);
Expand Down
18 changes: 18 additions & 0 deletions src/test/resources/openapi/issue-336.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
openapi: 3.0.3
info:
title: Spec for <https://github.com/kokuwaio/micronaut-openapi-codegen/issues/336>
version: "1"
paths: {}
components:
schemas:
ServiceScopes:
type: object
properties:
foo:
type: string
bar:
type: string
additionalProperties:
$ref: "#/components/schemas/ServiceScopesEntry"
ServiceScopesEntry:
type: string

0 comments on commit d331480

Please sign in to comment.