Skip to content

Commit

Permalink
Add testcase for enum with validation, rel #311
Browse files Browse the repository at this point in the history
  • Loading branch information
sschnabe committed Jan 2, 2024
1 parent 7fa3999 commit b94b31f
Show file tree
Hide file tree
Showing 6 changed files with 95 additions and 3 deletions.
3 changes: 3 additions & 0 deletions gen/main/java/issue/_331/DefaultApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ io.micronaut.http.HttpResponse<Object> string(
java.util.Optional<java.util.List<java.lang.String>> withoutValidation,
@io.micronaut.core.annotation.NonNull
@io.micronaut.http.annotation.QueryValue
java.util.Optional<java.util.List<@javax.validation.constraints.NotNull @javax.validation.Valid StringWithEnum>> withEnum,
@io.micronaut.core.annotation.NonNull
@io.micronaut.http.annotation.QueryValue
java.util.Optional<java.util.List<java.lang.@javax.validation.constraints.NotNull @javax.validation.constraints.Email String>> withEmail,
@io.micronaut.core.annotation.NonNull
@io.micronaut.http.annotation.QueryValue
Expand Down
5 changes: 4 additions & 1 deletion gen/main/java/issue/_331/DefaultApiClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ public interface DefaultApiClient {
java.lang.String PATH_COMPLEX = "/complex?{&array*}{&set*}";
java.lang.String PATH_INTEGER = "/integer?{&withoutValidation*}{&withMinimum*}{&withMaximum*}{&withMinimumAndMaximum*}";
java.lang.String PATH_NUMBER = "/number?{&withoutValidation*}{&withMinimum*}{&withMinimumExclusiveFalse*}{&withMinimumExclusiveTrue*}{&withMaximum*}{&withMaximumExclusiveFalse*}{&withMaximumExclusiveTrue*}";
java.lang.String PATH_STRING = "/string?{&withoutValidation*}{&withEmail*}{&withPattern*}{&withMinimum*}{&withMaximum*}{&withMinimumAndMaximum*}";
java.lang.String PATH_STRING = "/string?{&withoutValidation*}{&withEnum*}{&withEmail*}{&withPattern*}{&withMinimum*}{&withMaximum*}{&withMinimumAndMaximum*}";

@io.micronaut.http.annotation.Get(PATH_COMPLEX)
io.micronaut.http.HttpResponse<Object> complex(
Expand Down Expand Up @@ -63,6 +63,9 @@ io.micronaut.http.HttpResponse<Object> string(
@io.micronaut.http.annotation.QueryValue(value = "withoutValidation")
java.util.List<java.lang.String> withoutValidation,
@io.micronaut.core.annotation.Nullable
@io.micronaut.http.annotation.QueryValue(value = "withEnum")
java.util.List<@javax.validation.constraints.NotNull @javax.validation.Valid StringWithEnum> withEnum,
@io.micronaut.core.annotation.Nullable
@io.micronaut.http.annotation.QueryValue(value = "withEmail")
java.util.List<java.lang.@javax.validation.constraints.NotNull @javax.validation.constraints.Email String> withEmail,
@io.micronaut.core.annotation.Nullable
Expand Down
37 changes: 36 additions & 1 deletion gen/main/java/issue/_331/ModelString.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
public class ModelString {

public static final java.lang.String JSON_PROPERTY_WITHOUT_VALIDATION = "withoutValidation";
public static final java.lang.String JSON_PROPERTY_WITH_ENUM = "withEnum";
public static final java.lang.String JSON_PROPERTY_WITH_EMAIL = "withEmail";
public static final java.lang.String JSON_PROPERTY_WITH_PATTERN = "withPattern";
public static final java.lang.String JSON_PROPERTY_WITH_MINIMUM = "withMinimum";
Expand All @@ -15,6 +16,10 @@ public class ModelString {
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)
private java.util.List<java.lang.String> withoutValidation;

@com.fasterxml.jackson.annotation.JsonProperty(JSON_PROPERTY_WITH_ENUM)
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)
private java.util.List<@javax.validation.constraints.NotNull @javax.validation.Valid StringWithEnum> withEnum;

@com.fasterxml.jackson.annotation.JsonProperty(JSON_PROPERTY_WITH_EMAIL)
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)
private java.util.List<java.lang.@javax.validation.constraints.NotNull @javax.validation.constraints.Email String> withEmail;
Expand Down Expand Up @@ -47,6 +52,7 @@ public boolean equals(Object object) {
}
ModelString other = (ModelString) object;
return java.util.Objects.equals(withoutValidation, other.withoutValidation)
&& java.util.Objects.equals(withEnum, other.withEnum)
&& java.util.Objects.equals(withEmail, other.withEmail)
&& java.util.Objects.equals(withPattern, other.withPattern)
&& java.util.Objects.equals(withMinimum, other.withMinimum)
Expand All @@ -56,14 +62,15 @@ public boolean equals(Object object) {

@Override
public int hashCode() {
return java.util.Objects.hash(withoutValidation, withEmail, withPattern, withMinimum, withMaximum, withMinimumAndMaximum);
return java.util.Objects.hash(withoutValidation, withEnum, withEmail, withPattern, withMinimum, withMaximum, withMinimumAndMaximum);
}

@Override
public java.lang.String toString() {
return new java.lang.StringBuilder()
.append("ModelString[")
.append("withoutValidation=").append(withoutValidation).append(",")
.append("withEnum=").append(withEnum).append(",")
.append("withEmail=").append(withEmail).append(",")
.append("withPattern=").append(withPattern).append(",")
.append("withMinimum=").append(withMinimum).append(",")
Expand Down Expand Up @@ -95,6 +102,26 @@ public ModelString removeWithoutValidationItem(java.lang.String withoutValidatio
return this;
}

public ModelString withEnum(java.util.List<@javax.validation.constraints.NotNull @javax.validation.Valid StringWithEnum> newWithEnum) {
this.withEnum = newWithEnum;
return this;
}

public ModelString addWithEnumItem(StringWithEnum withEnumItem) {
if (this.withEnum == null) {
this.withEnum = new java.util.ArrayList<>();
}
this.withEnum.add(withEnumItem);
return this;
}

public ModelString removeWithEnumItem(StringWithEnum withEnumItem) {
if (this.withEnum != null) {
this.withEnum.remove(withEnumItem);
}
return this;
}

public ModelString withEmail(java.util.List<java.lang.@javax.validation.constraints.NotNull @javax.validation.constraints.Email String> newWithEmail) {
this.withEmail = newWithEmail;
return this;
Expand Down Expand Up @@ -205,6 +232,14 @@ public void setWithoutValidation(java.util.List<java.lang.String> newWithoutVali
this.withoutValidation = newWithoutValidation;
}

public java.util.List<@javax.validation.constraints.NotNull @javax.validation.Valid StringWithEnum> getWithEnum() {
return withEnum;
}

public void setWithEnum(java.util.List<@javax.validation.constraints.NotNull @javax.validation.Valid StringWithEnum> newWithEnum) {
this.withEnum = newWithEnum;
}

public java.util.List<java.lang.@javax.validation.constraints.NotNull @javax.validation.constraints.Email String> getWithEmail() {
return withEmail;
}
Expand Down
35 changes: 35 additions & 0 deletions gen/main/java/issue/_331/StringWithEnum.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package issue._331;

@jakarta.annotation.Generated("org.openapitools.codegen.languages.MicronautCodegen")
@io.micronaut.core.annotation.Introspected
public enum StringWithEnum {

A("A"),
B("B");

public static final java.lang.String A_VALUE = "A";
public static final java.lang.String B_VALUE = "B";

private final java.lang.String value;

private StringWithEnum(java.lang.String value) {
this.value = value;
}

@com.fasterxml.jackson.annotation.JsonCreator
public static StringWithEnum toEnum(java.lang.String value) {
return toOptional(value).orElseThrow(() -> new IllegalArgumentException("Unknown value '" + value + "'."));
}

public static java.util.Optional<StringWithEnum> toOptional(java.lang.String value) {
return java.util.Arrays
.stream(values())
.filter(e -> e.value.equals(value))
.findAny();
}

@com.fasterxml.jackson.annotation.JsonValue
public java.lang.String getValue() {
return value;
}
}
5 changes: 4 additions & 1 deletion gen/test/java/issue/_331/DefaultApiTestClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,15 @@ io.micronaut.http.HttpResponse<?> number(
@io.micronaut.http.annotation.QueryValue(value = "withMaximumExclusiveTrue")
java.util.List<java.lang.Double> withMaximumExclusiveTrue);

@io.micronaut.http.annotation.Get("/string?{&withoutValidation*}{&withEmail*}{&withPattern*}{&withMinimum*}{&withMaximum*}{&withMinimumAndMaximum*}")
@io.micronaut.http.annotation.Get("/string?{&withoutValidation*}{&withEnum*}{&withEmail*}{&withPattern*}{&withMinimum*}{&withMaximum*}{&withMinimumAndMaximum*}")
io.micronaut.http.HttpResponse<?> string(
@io.micronaut.core.annotation.Nullable
@io.micronaut.http.annotation.QueryValue(value = "withoutValidation")
java.util.List<java.lang.String> withoutValidation,
@io.micronaut.core.annotation.Nullable
@io.micronaut.http.annotation.QueryValue(value = "withEnum")
java.util.List<StringWithEnum> withEnum,
@io.micronaut.core.annotation.Nullable
@io.micronaut.http.annotation.QueryValue(value = "withEmail")
java.util.List<java.lang.String> withEmail,
@io.micronaut.core.annotation.Nullable
Expand Down
13 changes: 13 additions & 0 deletions src/test/resources/openapi/issue-331.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@ paths:
type: array
items:
$ref: "#/components/schemas/StringWithoutValidation"
- name: withEnum
in: query
schema:
type: array
items:
$ref: "#/components/schemas/StringWithEnum"
- name: withEmail
in: query
schema:
Expand Down Expand Up @@ -206,6 +212,10 @@ components:
type: array
items:
$ref: "#/components/schemas/StringWithoutValidation"
withEnum:
type: array
items:
$ref: "#/components/schemas/StringWithEnum"
withEmail:
type: array
items:
Expand Down Expand Up @@ -279,6 +289,9 @@ components:
StringWithoutValidation:
type: string
nullable: true
StringWithEnum:
type: string
enum: [A, B]
StringWithEmail:
type: string
format: email
Expand Down

0 comments on commit b94b31f

Please sign in to comment.