From 7ff78458d6708cecf0225b1b156f368e78ef2253 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20M=C3=BChlemann?= Date: Tue, 23 Jan 2024 20:32:21 +0100 Subject: [PATCH] Rename value to items in array pojo Issue: #187 --- .../array/ValidatorClassGenerator.java | 11 ++---- .../java/model/pojo/JavaArrayPojo.java | 5 +-- .../__snapshots__/JavaPojoGeneratorTest.snap | 30 +++++++-------- .../__snapshots__/ArrayPojoGeneratorTest.snap | 38 +++++++++---------- .../ValidatorClassGeneratorTest.snap | 22 +++++------ .../generator/pojo/MemberGeneratorTest.java | 21 +++------- .../__snapshots__/MemberGeneratorTest.snap | 13 +++++++ .../__snapshots__/EqualsGeneratorTest.snap | 2 +- .../__snapshots__/HashCodeGeneratorTest.snap | 2 +- .../PojoConstructorGeneratorTest.snap | 4 +- .../__snapshots__/ToStringGeneratorTest.snap | 2 +- .../java/model/pojo/JavaArrayPojoTest.java | 2 +- 12 files changed, 75 insertions(+), 77 deletions(-) diff --git a/plugin/src/main/java/com/github/muehmar/gradle/openapi/generator/java/generator/array/ValidatorClassGenerator.java b/plugin/src/main/java/com/github/muehmar/gradle/openapi/generator/java/generator/array/ValidatorClassGenerator.java index 246c08226..6103723dc 100644 --- a/plugin/src/main/java/com/github/muehmar/gradle/openapi/generator/java/generator/array/ValidatorClassGenerator.java +++ b/plugin/src/main/java/com/github/muehmar/gradle/openapi/generator/java/generator/array/ValidatorClassGenerator.java @@ -46,7 +46,7 @@ private static Generator isValidMethod() { .methodName("isValid") .noArguments() .doesNotThrow() - .content(isValidMethodContent(valueValidationCondition())) + .content(isValidMethodContent(itemsValidationCondition())) .build(); } @@ -61,15 +61,12 @@ private static Generator isValidMethodContent( }; } - private static Condition valueValidationCondition() { - return Condition.constant("isValueValid()"); + private static Condition itemsValidationCondition() { + return (pojo, settings, writer) -> + writer.print("is%sValid()", pojo.getArrayPojoMember().getName().startUpperCase()); } private interface Condition extends Generator { - static Condition constant(String constant) { - return (p, s, w) -> w.print(constant); - } - @Override default Condition filter(Predicate predicate) { final Generator self = this; diff --git a/plugin/src/main/java/com/github/muehmar/gradle/openapi/generator/java/model/pojo/JavaArrayPojo.java b/plugin/src/main/java/com/github/muehmar/gradle/openapi/generator/java/model/pojo/JavaArrayPojo.java index ca4cc506f..355a7e91a 100644 --- a/plugin/src/main/java/com/github/muehmar/gradle/openapi/generator/java/model/pojo/JavaArrayPojo.java +++ b/plugin/src/main/java/com/github/muehmar/gradle/openapi/generator/java/model/pojo/JavaArrayPojo.java @@ -79,7 +79,7 @@ public static JavaArrayPojo wrap(ArrayPojo arrayPojo, TypeMappings typeMappings) private static JavaPojoMember createItemTypeMember( ArrayPojo arrayPojo, JavaPojoName pojoName, JavaArrayType javaArrayType) { - final JavaName name = JavaName.fromString("value"); + final JavaName name = JavaName.fromString("items"); return javaPojoMemberBuilder() .pojoName(pojoName) .name(name) @@ -95,8 +95,7 @@ private static JavaPojoMember createItemTypeMember( private static JavaArrayType createJavaArrayType(ArrayPojo arrayPojo, TypeMappings typeMappings) { final ArrayType arrayType = ArrayType.ofItemType(arrayPojo.getItemType()).withConstraints(arrayPojo.getConstraints()); - final JavaArrayType javaArrayType = JavaArrayType.wrap(arrayType, typeMappings); - return javaArrayType; + return JavaArrayType.wrap(arrayType, typeMappings); } @Override diff --git a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/__snapshots__/JavaPojoGeneratorTest.snap b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/__snapshots__/JavaPojoGeneratorTest.snap index 7f68c3d5b..6f1696828 100644 --- a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/__snapshots__/JavaPojoGeneratorTest.snap +++ b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/__snapshots__/JavaPojoGeneratorTest.snap @@ -13,13 +13,13 @@ import javax.validation.constraints.NotNull; */ public class PosologyDto { @JsonValue - private final List value; + private final List items; @JsonCreator public PosologyDto( - List value + List items ) { - this.value = value; + this.items = items; } public static PosologyDto fromItems(List items) { @@ -34,15 +34,15 @@ public class PosologyDto { * Doses to be taken */ @NotNull - public List getValue() { - return value; + public List getItems() { + return items; } /** * Doses to be taken */ - public PosologyDto withValue(List value) { - return new PosologyDto(value); + public PosologyDto withItems(List items) { + return new PosologyDto(items); } boolean isValid() { @@ -50,20 +50,20 @@ public class PosologyDto { } private class Validator { - private boolean isValueValid() { - if(value != null) { - return value.stream().allMatch(this::isValueValueValid); + private boolean isItemsValid() { + if(items != null) { + return items.stream().allMatch(this::isItemsValueValid); } return false; } - private boolean isValueValueValid(Double valueValue) { + private boolean isItemsValueValid(Double itemsValue) { return true; } private boolean isValid() { - return isValueValid(); + return isItemsValid(); } } @@ -72,20 +72,20 @@ public class PosologyDto { if (this == obj) return true; if (obj == null || this.getClass() != obj.getClass()) return false; final PosologyDto other = (PosologyDto) obj; - return Objects.deepEquals(this.value, other.value); + return Objects.deepEquals(this.items, other.items); } @Override public int hashCode() { return Objects.hash( - value + items ); } @Override public String toString() { return "PosologyDto{" + - "value=" + value + + "items=" + items + "}"; } } diff --git a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/array/__snapshots__/ArrayPojoGeneratorTest.snap b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/array/__snapshots__/ArrayPojoGeneratorTest.snap index 403246177..af67933b0 100644 --- a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/array/__snapshots__/ArrayPojoGeneratorTest.snap +++ b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/array/__snapshots__/ArrayPojoGeneratorTest.snap @@ -15,13 +15,13 @@ import javax.validation.constraints.NotNull; */ public class PosologyDto { @JsonValue - private final List value; + private final List items; @JsonCreator public PosologyDto( - List value + List items ) { - this.value = value; + this.items = items; } public static PosologyDto fromItems(List items) { @@ -36,20 +36,20 @@ public class PosologyDto { * Doses to be taken */ @NotNull - public List getValue() { - return value; + public List getItems() { + return items; } /** * Doses to be taken */ - public PosologyDto withValue(List value) { - return new PosologyDto(value); + public PosologyDto withItems(List items) { + return new PosologyDto(items); } - @AssertTrue(message = "value does not contain unique items") - private boolean hasValueUniqueItems() { - return new HashSet<>(value).size() == value.size(); + @AssertTrue(message = "items does not contain unique items") + private boolean hasItemsUniqueItems() { + return new HashSet<>(items).size() == items.size(); } boolean isValid() { @@ -57,21 +57,21 @@ public class PosologyDto { } private class Validator { - private boolean isValueValid() { - if(value != null) { - return hasValueUniqueItems() - && value.stream().allMatch(this::isValueValueValid); + private boolean isItemsValid() { + if(items != null) { + return hasItemsUniqueItems() + && items.stream().allMatch(this::isItemsValueValid); } return false; } - private boolean isValueValueValid(Double valueValue) { + private boolean isItemsValueValid(Double itemsValue) { return true; } private boolean isValid() { - return isValueValid(); + return isItemsValid(); } } @@ -80,20 +80,20 @@ public class PosologyDto { if (this == obj) return true; if (obj == null || this.getClass() != obj.getClass()) return false; final PosologyDto other = (PosologyDto) obj; - return Objects.deepEquals(this.value, other.value); + return Objects.deepEquals(this.items, other.items); } @Override public int hashCode() { return Objects.hash( - value + items ); } @Override public String toString() { return "PosologyDto{" + - "value=" + value + + "items=" + items + "}"; } } diff --git a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/array/__snapshots__/ValidatorClassGeneratorTest.snap b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/array/__snapshots__/ValidatorClassGeneratorTest.snap index 91fe90929..d6294d087 100644 --- a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/array/__snapshots__/ValidatorClassGeneratorTest.snap +++ b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/array/__snapshots__/ValidatorClassGeneratorTest.snap @@ -1,19 +1,19 @@ arrayPojo=[ private class Validator { - private boolean isValueValid() { - if(value != null) { - return value.stream().allMatch(this::isValueValueValid); + private boolean isItemsValid() { + if(items != null) { + return items.stream().allMatch(this::isItemsValueValid); } return false; } - private boolean isValueValueValid(Double valueValue) { + private boolean isItemsValueValid(Double itemsValue) { return true; } private boolean isValid() { - return isValueValid(); + return isItemsValid(); } } ] @@ -21,21 +21,21 @@ private class Validator { arrayPojoWithUniqueItems=[ private class Validator { - private boolean isValueValid() { - if(value != null) { - return hasValueUniqueItems() - && value.stream().allMatch(this::isValueValueValid); + private boolean isItemsValid() { + if(items != null) { + return hasItemsUniqueItems() + && items.stream().allMatch(this::isItemsValueValid); } return false; } - private boolean isValueValueValid(Double valueValue) { + private boolean isItemsValueValid(Double itemsValue) { return true; } private boolean isValid() { - return isValueValid(); + return isItemsValid(); } } ] \ No newline at end of file diff --git a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/pojo/MemberGeneratorTest.java b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/pojo/MemberGeneratorTest.java index 430b0e2ac..25e8dab75 100644 --- a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/pojo/MemberGeneratorTest.java +++ b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/pojo/MemberGeneratorTest.java @@ -3,17 +3,14 @@ import static com.github.muehmar.gradle.openapi.generator.java.generator.pojo.MemberGenerator.memberGenerator; import static com.github.muehmar.gradle.openapi.generator.settings.TestPojoSettings.defaultTestSettings; import static io.github.muehmar.codegenerator.writer.Writer.javaWriter; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; import au.com.origin.snapshots.Expect; import au.com.origin.snapshots.annotations.SnapshotName; import com.github.muehmar.gradle.openapi.generator.java.generator.pojo.MemberGenerator.MemberContent; import com.github.muehmar.gradle.openapi.generator.java.model.pojo.JavaPojos; -import com.github.muehmar.gradle.openapi.generator.java.ref.JacksonRefs; -import com.github.muehmar.gradle.openapi.generator.java.ref.JavaRefs; import com.github.muehmar.gradle.openapi.generator.settings.PojoSettings; import com.github.muehmar.gradle.openapi.snapshot.SnapshotTest; +import com.github.muehmar.gradle.openapi.snapshot.SnapshotUtil; import io.github.muehmar.codegenerator.Generator; import io.github.muehmar.codegenerator.writer.Writer; import org.junit.jupiter.api.Test; @@ -33,10 +30,7 @@ void generate_when_samplePojo_then_correctOutputAndRef() { defaultTestSettings(), javaWriter()); - assertTrue(writer.getRefs().exists(JavaRefs.JAVA_UTIL_MAP::equals)); - - final String output = writer.asString(); - expect.toMatchSnapshot(output); + expect.toMatchSnapshot(SnapshotUtil.writerSnapshot(writer)); } @Test @@ -50,22 +44,17 @@ void generate_when_illegalIdentifierPojo_then_matchSnapshot() { defaultTestSettings(), javaWriter()); - assertTrue(writer.getRefs().exists(JavaRefs.JAVA_UTIL_MAP::equals)); - - final String output = writer.asString(); - expect.toMatchSnapshot(output); + expect.toMatchSnapshot(SnapshotUtil.writerSnapshot(writer)); } @Test + @SnapshotName("arrayPojo") void generate_when_arrayPojo_then_correctOutputAndRef() { final Generator gen = memberGenerator(); final Writer writer = gen.generate(JavaPojos.arrayPojo().getMemberContent(), defaultTestSettings(), javaWriter()); - assertTrue(writer.getRefs().exists(JacksonRefs.JSON_VALUE::equals)); - - final String output = writer.asString(); - assertEquals("@JsonValue\n" + "private final List value;", output); + expect.toMatchSnapshot(SnapshotUtil.writerSnapshot(writer)); } } diff --git a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/pojo/__snapshots__/MemberGeneratorTest.snap b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/pojo/__snapshots__/MemberGeneratorTest.snap index 4111217f9..55bdc06f9 100644 --- a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/pojo/__snapshots__/MemberGeneratorTest.snap +++ b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/pojo/__snapshots__/MemberGeneratorTest.snap @@ -1,4 +1,6 @@ allNecessityAndNullabilityVariants=[ +java.util.Map + private final String requiredStringVal; private final String requiredNullableStringVal; private final boolean isRequiredNullableStringValPresent; @@ -10,7 +12,18 @@ private final Map additionalProperties; ] +arrayPojo=[ +com.fasterxml.jackson.annotation.JsonValue +java.util.List + +@JsonValue +private final List items; +] + + illegalIdentifierPojo=[ +java.util.Map + private final String switch_; private final boolean isSwitchNull; private final String point_; diff --git a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/shared/misc/__snapshots__/EqualsGeneratorTest.snap b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/shared/misc/__snapshots__/EqualsGeneratorTest.snap index c83bbb9d8..8d8768f94 100644 --- a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/shared/misc/__snapshots__/EqualsGeneratorTest.snap +++ b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/shared/misc/__snapshots__/EqualsGeneratorTest.snap @@ -24,7 +24,7 @@ public boolean equals(Object obj) { if (this == obj) return true; if (obj == null || this.getClass() != obj.getClass()) return false; final PosologyDto other = (PosologyDto) obj; - return Objects.deepEquals(this.value, other.value); + return Objects.deepEquals(this.items, other.items); } ] diff --git a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/shared/misc/__snapshots__/HashCodeGeneratorTest.snap b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/shared/misc/__snapshots__/HashCodeGeneratorTest.snap index f38cd5d2e..5d9859706 100644 --- a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/shared/misc/__snapshots__/HashCodeGeneratorTest.snap +++ b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/shared/misc/__snapshots__/HashCodeGeneratorTest.snap @@ -23,7 +23,7 @@ java.util.Objects @Override public int hashCode() { return Objects.hash( - value + items ); } ] diff --git a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/shared/misc/__snapshots__/PojoConstructorGeneratorTest.snap b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/shared/misc/__snapshots__/PojoConstructorGeneratorTest.snap index 4211daa38..33513306f 100644 --- a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/shared/misc/__snapshots__/PojoConstructorGeneratorTest.snap +++ b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/shared/misc/__snapshots__/PojoConstructorGeneratorTest.snap @@ -1,9 +1,9 @@ arrayPojo=[ @JsonCreator public PosologyDto( - List value + List items ) { - this.value = value; + this.items = items; } ] diff --git a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/shared/misc/__snapshots__/ToStringGeneratorTest.snap b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/shared/misc/__snapshots__/ToStringGeneratorTest.snap index 673a9b1d2..3074e0ba9 100644 --- a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/shared/misc/__snapshots__/ToStringGeneratorTest.snap +++ b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/generator/shared/misc/__snapshots__/ToStringGeneratorTest.snap @@ -19,7 +19,7 @@ arrayPojo=[ @Override public String toString() { return "PosologyDto{" + - "value=" + value + + "items=" + items + "}"; } ] diff --git a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/model/pojo/JavaArrayPojoTest.java b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/model/pojo/JavaArrayPojoTest.java index 010591e22..a0854ee4e 100644 --- a/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/model/pojo/JavaArrayPojoTest.java +++ b/plugin/src/test/java/com/github/muehmar/gradle/openapi/generator/java/model/pojo/JavaArrayPojoTest.java @@ -27,7 +27,7 @@ void wrap_when_arrayPojo_then_correctJavaPojoMemberCreated() { final JavaPojoMember arrayPojoMember = javaArrayPojo.getArrayPojoMember(); - assertEquals(JavaName.fromString("value"), arrayPojoMember.getName()); + assertEquals(JavaName.fromString("items"), arrayPojoMember.getName()); assertEquals(arrayPojo.getDescription(), arrayPojoMember.getDescription()); assertEquals(arrayPojo.getConstraints(), arrayPojoMember.getJavaType().getConstraints()); assertEquals(