From 7d82a60ac124e4a6278fc495e6db75eb0b18051f Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" Date: Tue, 13 Apr 2021 10:46:10 +0300 Subject: [PATCH 01/20] added travis-ci config --- .travis.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..b0354dd1f --- /dev/null +++ b/.travis.yml @@ -0,0 +1,22 @@ +{ + "language": "java", + "os": [ + "linux" + ], + "dist": "xenial", + "jdk": [ + "openjdk8" + ], + "before_install": [ + "pip install --user codecov" + ], + "script": [ + "echo $TRAVIS_COMMIT_RANGE", + "echo $TRAVIS_EVENT_TYPE", + "echo $nondextests", + "mvn -pl typescript-generator-core edu.illinois:nondex-maven-plugin:1.1.2:nondex -Dtest=cz.habarta.typescript.generator.ImmutablesTest#testImmutables", + ], + "after_success": [ + "codecov" + ], +} \ No newline at end of file From df05bf6e68246e0f82274f4aeaac78de47e3fa2c Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" Date: Tue, 13 Apr 2021 11:13:23 +0300 Subject: [PATCH 02/20] made ObjectMapper sort properties alphabetically --- .../habarta/typescript/generator/parser/Jackson2Parser.java | 4 +++- .../java/cz/habarta/typescript/generator/ImmutablesTest.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java b/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java index 42d7430c9..56a63e471 100644 --- a/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java +++ b/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java @@ -22,6 +22,7 @@ import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.Module; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationConfig; @@ -112,7 +113,8 @@ public JaxbParserFactory() { } - private final ObjectMapper objectMapper = new ObjectMapper(); + private final ObjectMapper objectMapper = new ObjectMapper() + .configure(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY, true); public Jackson2Parser(Settings settings, TypeProcessor typeProcessor) { this(settings, typeProcessor, Collections.emptyList(), false); diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/ImmutablesTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/ImmutablesTest.java index 9ba96e55c..35334a61a 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/ImmutablesTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/ImmutablesTest.java @@ -28,8 +28,8 @@ public void testImmutables() { "\n" + "interface Rectangle extends Shape {\n" + " kind: 'rectangle';\n" + - " width: number;\n" + " height: number;\n" + + " width: number;\n" + "}\n" + "\n" + "interface Circle extends Shape {\n" + From 19ce67cc7b22f078badfb48285050521d1b70cb9 Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" <51242349+mohasarc@users.noreply.github.com> Date: Thu, 10 Jun 2021 23:27:13 +0300 Subject: [PATCH 03/20] Delete .travis.yml --- .travis.yml | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index b0354dd1f..000000000 --- a/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -{ - "language": "java", - "os": [ - "linux" - ], - "dist": "xenial", - "jdk": [ - "openjdk8" - ], - "before_install": [ - "pip install --user codecov" - ], - "script": [ - "echo $TRAVIS_COMMIT_RANGE", - "echo $TRAVIS_EVENT_TYPE", - "echo $nondextests", - "mvn -pl typescript-generator-core edu.illinois:nondex-maven-plugin:1.1.2:nondex -Dtest=cz.habarta.typescript.generator.ImmutablesTest#testImmutables", - ], - "after_success": [ - "codecov" - ], -} \ No newline at end of file From dda147ba38eb89b37cec9160d0199e0ddb5a5513 Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" Date: Fri, 11 Jun 2021 20:39:08 +0300 Subject: [PATCH 04/20] fixed the test: Jackson2ParserTest#test --- .../cz/habarta/typescript/generator/Jackson2ParserTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/Jackson2ParserTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/Jackson2ParserTest.java index 74f859c8f..ac8b4125f 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/Jackson2ParserTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/Jackson2ParserTest.java @@ -58,7 +58,7 @@ public void test() { final BeanModel beanModel = model.getBeans().get(0); Assert.assertEquals("DummyBean", beanModel.getOrigin().getSimpleName()); Assert.assertTrue(beanModel.getProperties().size() > 0); - Assert.assertEquals("firstProperty", beanModel.getProperties().get(0).getName()); + Assert.assertEquals("booleanProperty", beanModel.getProperties().get(0).getName()); } @Test From 590bd1480400a954fbe3b2646263027e65d8c7ac Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" Date: Fri, 11 Jun 2021 21:49:42 +0300 Subject: [PATCH 05/20] fixed ClassesTest.testUnsortedConstructor text --- .../java/cz/habarta/typescript/generator/ClassesTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/ClassesTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/ClassesTest.java index 49ae106de..09d7225d3 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/ClassesTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/ClassesTest.java @@ -302,8 +302,8 @@ public void testUnsortedConstructor() { settings.sortDeclarations = false; final String output = new TypeScriptGenerator(settings).generateTypeScript(Input.from(FooBar.class)); String unsortedPropertyAssignments = "" + - " this.foo = data.foo;" + settings.newline + - " this.bar = data.bar;"; + " this.bar = data.bar;" + settings.newline + + " this.foo = data.foo;"; Assert.assertTrue(output.contains(unsortedPropertyAssignments)); } From d22d4c0f92731ed19261af9452221711fd9e760f Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" Date: Fri, 11 Jun 2021 21:50:19 +0300 Subject: [PATCH 06/20] fixed a number of tests of OptionalTest --- .../typescript/generator/OptionalTest.java | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/OptionalTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/OptionalTest.java index a5a389419..d0d9e36ee 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/OptionalTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/OptionalTest.java @@ -19,9 +19,9 @@ public void test() { final String output = new TypeScriptGenerator(TestUtils.settings()).generateTypeScript(Input.from(Person.class)); Assert.assertEquals( "interface Person {\n" + - " name: string;\n" + - " email?: string;\n" + " age?: number;\n" + + " email?: string;\n" + + " name: string;\n" + "}", output.trim()); } @@ -53,9 +53,9 @@ public void testJackson2OptionalSupport() throws Exception { public void testDeclarationQuestionMark() { testDeclaration(OptionalPropertiesDeclaration.questionMark, "interface Person {\n" + - " name: string;\n" + - " email?: string;\n" + " age?: number;\n" + + " email?: string;\n" + + " name: string;\n" + "}" ); } @@ -64,9 +64,9 @@ public void testDeclarationQuestionMark() { public void testDeclarationNullableType() { testDeclaration(OptionalPropertiesDeclaration.nullableType, "interface Person {\n" + - " name: string;\n" + - " email: string | null;\n" + " age: number | null;\n" + + " email: string | null;\n" + + " name: string;\n" + "}" ); } @@ -75,9 +75,9 @@ public void testDeclarationNullableType() { public void testDeclarationQuestionMarkAndNullableType() { testDeclaration(OptionalPropertiesDeclaration.questionMarkAndNullableType, "interface Person {\n" + - " name: string;\n" + - " email?: string | null;\n" + " age?: number | null;\n" + + " email?: string | null;\n" + + " name: string;\n" + "}" ); } @@ -86,10 +86,10 @@ public void testDeclarationQuestionMarkAndNullableType() { public void testDeclarationNullableAndUndefinableType() { testDeclaration(OptionalPropertiesDeclaration.nullableAndUndefinableType, "interface Person {\n" + - " name: string;\n" + - " email: string | null | undefined;\n" + - " age: number | null | undefined;\n" + - "}" + " age: number | null | undefined;\n" + + " email: string | null | undefined;\n" + + " name: string;\n" + + "}" ); } @@ -97,10 +97,10 @@ public void testDeclarationNullableAndUndefinableType() { public void testDeclarationUndefinableType() { testDeclaration(OptionalPropertiesDeclaration.undefinableType, "interface Person {\n" + - " name: string;\n" + - " email: string | undefined;\n" + - " age: number | undefined;\n" + - "}" + " age: number | undefined;\n" + + " email: string | undefined;\n" + + " name: string;\n" + + "}" ); } From 77de05461686e4e30ee29812f886923819ddd3dc Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" Date: Sat, 12 Jun 2021 01:01:36 +0300 Subject: [PATCH 07/20] fixed all flaky tests of TaggedUnionsTest and improved Jackson2ParserPropertiesTest test --- .../habarta/typescript/generator/TaggedUnionsTest.java | 10 +++++----- .../generator/parser/Jackson2ParserPropertiesTest.java | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/TaggedUnionsTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/TaggedUnionsTest.java index 6243dbda0..a54fdcacd 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/TaggedUnionsTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/TaggedUnionsTest.java @@ -206,8 +206,8 @@ public void testTaggedUnions() { "\n" + "interface Rectangle extends Shape {\n" + " kind: 'rectangle';\n" + - " width: number;\n" + " height: number;\n" + + " width: number;\n" + "}\n" + "\n" + "interface Circle extends Shape {\n" + @@ -238,8 +238,8 @@ public void testTaggedUnionsWithInterfaces() { "\n" + "interface CRectangle2 extends IQuadrilateral2 {\n" + " kind: 'rectangle';\n" + - " width: number;\n" + " height: number;\n" + + " width: number;\n" + "}\n" + "\n" + "interface CCircle2 extends IShape2 {\n" + @@ -315,8 +315,8 @@ public void testTaggedUnionsDisabled() { "\n" + "interface Rectangle extends Shape {\n" + " kind: 'rectangle';\n" + - " width: number;\n" + " height: number;\n" + + " width: number;\n" + "}\n" + "\n" + "interface Circle extends Shape {\n" + @@ -518,8 +518,8 @@ public void testTaggedUnionsWithExistingProperty() { "\n" + "interface Rectangle2 extends Shape2 {\n" + " kind: 'rectangle';\n" + - " width: number;\n" + " height: number;\n" + + " width: number;\n" + "}\n" + "\n" + "interface Circle2 extends Shape2 {\n" + @@ -553,8 +553,8 @@ public void testTaggedUnionDisabledUsingAnnotation() { "}\n" + "\n" + "interface Rectangle2 extends Shape2 {\n" + - " width: number;\n" + " height: number;\n" + + " width: number;\n" + "}\n" + "\n" + "interface Circle2 extends Shape2 {\n" + diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/parser/Jackson2ParserPropertiesTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/parser/Jackson2ParserPropertiesTest.java index 243e23894..41bd18c48 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/parser/Jackson2ParserPropertiesTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/parser/Jackson2ParserPropertiesTest.java @@ -76,12 +76,12 @@ public static class User4 { @Test public void testPropertyOrder() { - Assert.assertEquals(Arrays.asList("password1", "id2", "name", "id1", "password2"), getProperties(UserOrdered.class)); + Assert.assertEquals(Arrays.asList("password1", "id2", "id1", "name", "password2"), getProperties(UserOrdered.class)); Assert.assertEquals(Arrays.asList("id1", "id2", "name", "password1", "password2"), getProperties(UserAlphabetic.class)); Assert.assertEquals(Arrays.asList("password2", "password1", "id2", "id1", "name"), getProperties(UserIndexed.class)); - Assert.assertEquals(Arrays.asList("name", "id1", "id2", "password1", "password2"), getProperties(User1.class)); - Assert.assertEquals(Arrays.asList("name", "id1", "id2", "password1", "password2"), getProperties(User2.class)); - Assert.assertEquals(Arrays.asList("name", "password1", "password2", "id1", "id2"), getProperties(User3.class)); + Assert.assertEquals(Arrays.asList("id1", "id2", "name", "password1", "password2"), getProperties(User1.class)); + Assert.assertEquals(Arrays.asList("id1", "id2", "name", "password1", "password2"), getProperties(User2.class)); + Assert.assertEquals(Arrays.asList("id1", "id2", "name", "password1", "password2"), getProperties(User3.class)); Assert.assertEquals(Arrays.asList("password1", "id1", "password2", "id2", "name"), getProperties(User4.class)); } From 12d0e0ce127beebc0dff7cafe86a759038de3fa0 Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" <51242349+mohasarc@users.noreply.github.com> Date: Sat, 12 Jun 2021 09:34:48 +0300 Subject: [PATCH 08/20] partially fixed JavadocTest.testJavadoc --- .../java/cz/habarta/typescript/generator/JavadocTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JavadocTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JavadocTest.java index c44a55c30..0a9621224 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JavadocTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JavadocTest.java @@ -25,10 +25,10 @@ public void testJavadoc() { final BeanModel bean = model.getBeans().get(0); Assert.assertEquals("Documentation for ClassWithJavadoc. First line.", bean.getComments().get(0)); Assert.assertEquals("Second line.", bean.getComments().get(1)); - final PropertyModel property1 = bean.getProperties().get(0); - Assert.assertEquals("Documentation for documentedField.", property1.getComments().get(0)); - final PropertyModel property2 = bean.getProperties().get(1); + final PropertyModel property2 = bean.getProperties().get(0); Assert.assertEquals("Documentation for documentedEnumField.", property2.getComments().get(0)); + final PropertyModel property1 = bean.getProperties().get(1); + Assert.assertEquals("Documentation for documentedField.", property1.getComments().get(0)); final EnumModel enumModel = model.getEnums().get(0); Assert.assertEquals("Documentation for DummyEnum.", enumModel.getComments().get(0)); } From a80d258dc0a16a1eb47cc8cd768814798452ced8 Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" <51242349+mohasarc@users.noreply.github.com> Date: Sat, 12 Jun 2021 09:49:21 +0300 Subject: [PATCH 09/20] partially fixed ReadOnlyWriteOnlyTest.test --- .../typescript/generator/ReadOnlyWriteOnlyTest.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/ReadOnlyWriteOnlyTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/ReadOnlyWriteOnlyTest.java index bb54a4674..924c6a65f 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/ReadOnlyWriteOnlyTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/ReadOnlyWriteOnlyTest.java @@ -75,19 +75,19 @@ public void test() { final String output = new TypeScriptGenerator(settings).generateTypeScript(Input.from(ReadOnlyWriteOnlyUser.class)); final String expected = "\n" + "interface ReadOnlyWriteOnlyUser {\n" - + " name: string;\n" + " /**\n" + " * @readonly\n" + " */\n" + " id1: string;\n" + " /**\n" - + " * @writeonly\n" - + " */\n" - + " password1: string;\n" - + " /**\n" + " * @readonly\n" + " */\n" + " id2: string;\n" + + " name: string;\n" + + " /**\n" + + " * @writeonly\n" + + " */\n" + + " password1: string;\n" + " /**\n" + " * @writeonly\n" + " */\n" From b3f19bf5472a2f2fefbacb6cea48aff056484364 Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" <51242349+mohasarc@users.noreply.github.com> Date: Sat, 12 Jun 2021 10:09:21 +0300 Subject: [PATCH 10/20] fixed the test TaggedUnionsTest.testIntermediateUnions --- .../typescript/generator/TaggedUnionsTest.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/TaggedUnionsTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/TaggedUnionsTest.java index a54fdcacd..b21975c2f 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/TaggedUnionsTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/TaggedUnionsTest.java @@ -647,13 +647,9 @@ public void testIntermediateUnions() { final String output = new TypeScriptGenerator(settings).generateTypeScript(Input.from(RecordUsage.class)); final String expected = "" + "interface RecordUsage {\n" - + " records: RecordUnion[];\n" + " formRecords: FormRecordUnion[];\n" + " listRecords: ListRecordUnion[];\n" - + "}\n" - + "\n" - + "interface Record {\n" - + " '@type': 'order.form' | 'product.form' | 'order.list' | 'product.list';\n" + + " records: RecordUnion[];\n" + "}\n" + "\n" + "interface FormRecord extends Record {\n" @@ -664,6 +660,10 @@ public void testIntermediateUnions() { + " '@type': 'order.list' | 'product.list';\n" + "}\n" + "\n" + + "interface Record {\n" + + " '@type': 'order.form' | 'product.form' | 'order.list' | 'product.list';\n" + + "}\n" + + "\n" + "interface OrderFormRecord extends FormRecord {\n" + " '@type': 'order.form';\n" + "}\n" @@ -680,11 +680,11 @@ public void testIntermediateUnions() { + " '@type': 'product.list';\n" + "}\n" + "\n" - + "type RecordUnion = FormRecord | ListRecord;\n" - + "\n" + "type FormRecordUnion = OrderFormRecord | ProductFormRecord;\n" + "\n" + "type ListRecordUnion = OrderListRecord | ProductListRecord;\n" + + "\n" + + "type RecordUnion = FormRecord | ListRecord;\n" + ""; Assert.assertEquals(expected.trim(), output.trim()); } From 45b45a19bd62574108f697c0fd1e1f82e193952c Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" <51242349+mohasarc@users.noreply.github.com> Date: Sat, 12 Jun 2021 13:33:12 +0300 Subject: [PATCH 11/20] improved JaxrsApplicationTest.testEnumQueryParam --- .../cz/habarta/typescript/generator/JaxrsApplicationTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JaxrsApplicationTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JaxrsApplicationTest.java index 0e6cdf38a..d3c51d96b 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JaxrsApplicationTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JaxrsApplicationTest.java @@ -588,7 +588,7 @@ public void testEnumQueryParam() { settings.generateJaxrsApplicationInterface = true; final String output = new TypeScriptGenerator(settings).generateTypeScript(Input.from(EnumQueryParamResource.class)); Assert.assertTrue(output.contains("queryParams?: { target?: TargetEnum; }")); - Assert.assertTrue(output.contains("type TargetEnum = \"Target1\" | \"Target2\"")); + Assert.assertTrue(output.contains("type TargetEnum = \"Target1\" | \"Target2\"") || output.contains("type TargetEnum = \"Target2\" | \"Target1\"")); } @Path("enum-query-param") From fb563237eeb37eccddda110cbac6a558c4d5b4aa Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" Date: Mon, 14 Jun 2021 09:47:53 +0300 Subject: [PATCH 12/20] reverted back the changes to JaxrsApplicationTest.testEnumQueryParam --- .../cz/habarta/typescript/generator/JaxrsApplicationTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JaxrsApplicationTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JaxrsApplicationTest.java index a4fd65cae..16b4bdb77 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JaxrsApplicationTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JaxrsApplicationTest.java @@ -591,7 +591,7 @@ public void testEnumQueryParam() { settings.generateJaxrsApplicationInterface = true; final String output = new TypeScriptGenerator(settings).generateTypeScript(Input.from(EnumQueryParamResource.class)); Assert.assertTrue(output.contains("queryParams?: { target?: TargetEnum; }")); - Assert.assertTrue(output.contains("type TargetEnum = \"Target1\" | \"Target2\"") || output.contains("type TargetEnum = \"Target2\" | \"Target1\"")); + Assert.assertTrue(output.contains("type TargetEnum = \"Target1\" | \"Target2\"")); } @Path("enum-query-param") From 399e586e5124362c4da270ec5b464e84e6220896 Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" Date: Mon, 21 Jun 2021 01:37:26 +0300 Subject: [PATCH 13/20] fixed the test Jackson2ParserPropertiesTest.testPropertyOrder --- .../generator/parser/Jackson2Parser.java | 17 ----------------- .../parser/Jackson2ParserPropertiesTest.java | 2 +- 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java b/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java index 960ac45c9..7c44d26c7 100644 --- a/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java +++ b/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java @@ -608,23 +608,6 @@ private List> getPropertiesPairs() { ) .collect(Collectors.toCollection(ArrayList::new)); - // sort - final Comparator> bySerializationOrder = (pair1, pair2) -> - pair1.getValue1() != null && pair2.getValue1() != null - ? Integer.compare( - serializableProperties.indexOf(pair1.getValue1()), - serializableProperties.indexOf(pair2.getValue1())) - : 0; - final Comparator> byIndex = Comparator.comparing( - pair -> getIndex(pair), - Comparator.nullsLast(Comparator.naturalOrder())); - final List fields = Utils.getAllFields(beanClass); - final Comparator> byFieldIndex = Comparator.comparing( - pair -> getFieldIndex(fields, pair), - Comparator.nullsLast(Comparator.naturalOrder())); - properties.sort(bySerializationOrder - .thenComparing(byIndex) - .thenComparing(byFieldIndex)); return properties; } diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/parser/Jackson2ParserPropertiesTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/parser/Jackson2ParserPropertiesTest.java index 41bd18c48..8fd084600 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/parser/Jackson2ParserPropertiesTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/parser/Jackson2ParserPropertiesTest.java @@ -82,7 +82,7 @@ public void testPropertyOrder() { Assert.assertEquals(Arrays.asList("id1", "id2", "name", "password1", "password2"), getProperties(User1.class)); Assert.assertEquals(Arrays.asList("id1", "id2", "name", "password1", "password2"), getProperties(User2.class)); Assert.assertEquals(Arrays.asList("id1", "id2", "name", "password1", "password2"), getProperties(User3.class)); - Assert.assertEquals(Arrays.asList("password1", "id1", "password2", "id2", "name"), getProperties(User4.class)); + Assert.assertEquals(Arrays.asList("id1", "id2", "name", "password1", "password2"), getProperties(User4.class)); } private List getProperties(Class beanClass) { From 1187ca2c8dad4295e4ccdf3d79e8129fc4cd4448 Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" Date: Mon, 21 Jun 2021 02:07:33 +0300 Subject: [PATCH 14/20] changed variable names for clarity --- .../typescript/generator/JavadocTest.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JavadocTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JavadocTest.java index 0a9621224..1f0cd0cb2 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JavadocTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JavadocTest.java @@ -25,10 +25,10 @@ public void testJavadoc() { final BeanModel bean = model.getBeans().get(0); Assert.assertEquals("Documentation for ClassWithJavadoc. First line.", bean.getComments().get(0)); Assert.assertEquals("Second line.", bean.getComments().get(1)); - final PropertyModel property2 = bean.getProperties().get(0); - Assert.assertEquals("Documentation for documentedEnumField.", property2.getComments().get(0)); - final PropertyModel property1 = bean.getProperties().get(1); - Assert.assertEquals("Documentation for documentedField.", property1.getComments().get(0)); + final PropertyModel property1 = bean.getProperties().get(0); + Assert.assertEquals("Documentation for documentedEnumField.", property1.getComments().get(0)); + final PropertyModel property2 = bean.getProperties().get(1); + Assert.assertEquals("Documentation for documentedField.", property2.getComments().get(0)); final EnumModel enumModel = model.getEnums().get(0); Assert.assertEquals("Documentation for DummyEnum.", enumModel.getComments().get(0)); } @@ -113,15 +113,15 @@ public void testJavadoc() { */ public static class ClassWithJavadoc { - /** - * Documentation for documentedField. - */ - public String documentedField; - /** * Documentation for documentedEnumField. */ public DummyEnum documentedEnumField; + + /** + * Documentation for documentedField. + */ + public String documentedField; /** * Documentation for getter property. From 6bc43d9e83359c16b3d62b0ae708a5f6aefedb23 Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" Date: Mon, 21 Jun 2021 02:08:33 +0300 Subject: [PATCH 15/20] reverted the indentation to how it was --- .../typescript/generator/OptionalTest.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/OptionalTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/OptionalTest.java index d0d9e36ee..714b4c12e 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/OptionalTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/OptionalTest.java @@ -86,10 +86,10 @@ public void testDeclarationQuestionMarkAndNullableType() { public void testDeclarationNullableAndUndefinableType() { testDeclaration(OptionalPropertiesDeclaration.nullableAndUndefinableType, "interface Person {\n" + - " age: number | null | undefined;\n" + - " email: string | null | undefined;\n" + - " name: string;\n" + - "}" + " age: number | null | undefined;\n" + + " email: string | null | undefined;\n" + + " name: string;\n" + + "}" ); } @@ -97,10 +97,10 @@ public void testDeclarationNullableAndUndefinableType() { public void testDeclarationUndefinableType() { testDeclaration(OptionalPropertiesDeclaration.undefinableType, "interface Person {\n" + - " age: number | undefined;\n" + - " email: string | undefined;\n" + - " name: string;\n" + - "}" + " age: number | undefined;\n" + + " email: string | undefined;\n" + + " name: string;\n" + + "}" ); } From 9b765306ca436cca20dc19a6672353dbdd3d8a6f Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" Date: Mon, 21 Jun 2021 22:40:34 +0300 Subject: [PATCH 16/20] reverted back the changes to items order --- .../java/cz/habarta/typescript/generator/ImmutablesTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/ImmutablesTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/ImmutablesTest.java index 6338e4bb6..9ecac6db1 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/ImmutablesTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/ImmutablesTest.java @@ -29,8 +29,8 @@ public void testImmutables() { "\n" + "interface Rectangle extends Shape {\n" + " kind: 'rectangle';\n" + - " height: number;\n" + " width: number;\n" + + " height: number;\n" + "}\n" + "\n" + "interface Circle extends Shape {\n" + From 1bf2625a875d28b951892e1ebd1b33189bc4bddb Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" Date: Wed, 23 Jun 2021 00:28:17 +0300 Subject: [PATCH 17/20] added the sorting code again while changing the third comparator into an alphabetical order one --- .../generator/parser/Jackson2Parser.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java b/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java index 7c44d26c7..46672fb0c 100644 --- a/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java +++ b/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java @@ -608,6 +608,27 @@ private List> getPropertiesPairs() { ) .collect(Collectors.toCollection(ArrayList::new)); + // sort + final Comparator> bySerializationOrder = (pair1, pair2) -> + pair1.getValue1() != null && pair2.getValue1() != null + ? Integer.compare( + serializableProperties.indexOf(pair1.getValue1()), + serializableProperties.indexOf(pair2.getValue1())) + : 0; + final Comparator> byIndex = Comparator.comparing( + pair -> getIndex(pair), + Comparator.nullsLast(Comparator.naturalOrder())); + final Comparator> byAlphabeticalOrder = (pair1, pair2) -> + pair1.getValue1() != null && pair2.getValue1() != null + ? pair1.getValue1().getName().compareTo(pair2.getValue1().getName()) + : pair1.getValue1() != null && pair2.getValue2() != null + ? pair1.getValue1().getName().compareTo(pair2.getValue2().getName()) + : pair1.getValue2() != null && pair2.getValue1() != null + ? pair1.getValue2().getName().compareTo(pair2.getValue1().getName()) + : 0; + properties.sort(bySerializationOrder + .thenComparing(byIndex) + .thenComparing(byAlphabeticalOrder)); return properties; } From adef19c71aff4ca5b7168efd9cd22d489549eb28 Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" <51242349+mohasarc@users.noreply.github.com> Date: Wed, 23 Jun 2021 00:31:10 +0300 Subject: [PATCH 18/20] readded deleted spaces --- .../habarta/typescript/generator/parser/Jackson2Parser.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java b/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java index 46672fb0c..399b6b8e8 100644 --- a/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java +++ b/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java @@ -612,8 +612,8 @@ private List> getPropertiesPairs() { final Comparator> bySerializationOrder = (pair1, pair2) -> pair1.getValue1() != null && pair2.getValue1() != null ? Integer.compare( - serializableProperties.indexOf(pair1.getValue1()), - serializableProperties.indexOf(pair2.getValue1())) + serializableProperties.indexOf(pair1.getValue1()), + serializableProperties.indexOf(pair2.getValue1())) : 0; final Comparator> byIndex = Comparator.comparing( pair -> getIndex(pair), From a51d5949492aab610a1a1bd55f1ce7fdaae9d19c Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" <51242349+mohasarc@users.noreply.github.com> Date: Wed, 23 Jun 2021 00:32:33 +0300 Subject: [PATCH 19/20] added more spaces --- .../generator/parser/Jackson2Parser.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java b/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java index 399b6b8e8..cb3f1d396 100644 --- a/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java +++ b/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java @@ -612,20 +612,20 @@ private List> getPropertiesPairs() { final Comparator> bySerializationOrder = (pair1, pair2) -> pair1.getValue1() != null && pair2.getValue1() != null ? Integer.compare( - serializableProperties.indexOf(pair1.getValue1()), - serializableProperties.indexOf(pair2.getValue1())) + serializableProperties.indexOf(pair1.getValue1()), + serializableProperties.indexOf(pair2.getValue1())) : 0; final Comparator> byIndex = Comparator.comparing( pair -> getIndex(pair), Comparator.nullsLast(Comparator.naturalOrder())); final Comparator> byAlphabeticalOrder = (pair1, pair2) -> pair1.getValue1() != null && pair2.getValue1() != null - ? pair1.getValue1().getName().compareTo(pair2.getValue1().getName()) - : pair1.getValue1() != null && pair2.getValue2() != null - ? pair1.getValue1().getName().compareTo(pair2.getValue2().getName()) - : pair1.getValue2() != null && pair2.getValue1() != null - ? pair1.getValue2().getName().compareTo(pair2.getValue1().getName()) - : 0; + ? pair1.getValue1().getName().compareTo(pair2.getValue1().getName()) + : pair1.getValue1() != null && pair2.getValue2() != null + ? pair1.getValue1().getName().compareTo(pair2.getValue2().getName()) + : pair1.getValue2() != null && pair2.getValue1() != null + ? pair1.getValue2().getName().compareTo(pair2.getValue1().getName()) + : 0; properties.sort(bySerializationOrder .thenComparing(byIndex) .thenComparing(byAlphabeticalOrder)); From d91e5449b1c368babfb2ae89890a5207b81f5fd0 Mon Sep 17 00:00:00 2001 From: "Mohammed S. Yaseen" Date: Thu, 24 Jun 2021 00:32:21 +0300 Subject: [PATCH 20/20] reverted back some changes --- .../generator/parser/Jackson2Parser.java | 14 +++++--------- .../habarta/typescript/generator/JavadocTest.java | 10 +++++----- .../parser/Jackson2ParserPropertiesTest.java | 2 +- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java b/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java index cb3f1d396..960ac45c9 100644 --- a/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java +++ b/typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Jackson2Parser.java @@ -618,17 +618,13 @@ private List> getPropertiesPairs() { final Comparator> byIndex = Comparator.comparing( pair -> getIndex(pair), Comparator.nullsLast(Comparator.naturalOrder())); - final Comparator> byAlphabeticalOrder = (pair1, pair2) -> - pair1.getValue1() != null && pair2.getValue1() != null - ? pair1.getValue1().getName().compareTo(pair2.getValue1().getName()) - : pair1.getValue1() != null && pair2.getValue2() != null - ? pair1.getValue1().getName().compareTo(pair2.getValue2().getName()) - : pair1.getValue2() != null && pair2.getValue1() != null - ? pair1.getValue2().getName().compareTo(pair2.getValue1().getName()) - : 0; + final List fields = Utils.getAllFields(beanClass); + final Comparator> byFieldIndex = Comparator.comparing( + pair -> getFieldIndex(fields, pair), + Comparator.nullsLast(Comparator.naturalOrder())); properties.sort(bySerializationOrder .thenComparing(byIndex) - .thenComparing(byAlphabeticalOrder)); + .thenComparing(byFieldIndex)); return properties; } diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JavadocTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JavadocTest.java index 1f0cd0cb2..c79e6158a 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JavadocTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JavadocTest.java @@ -113,16 +113,16 @@ public void testJavadoc() { */ public static class ClassWithJavadoc { - /** - * Documentation for documentedEnumField. - */ - public DummyEnum documentedEnumField; - /** * Documentation for documentedField. */ public String documentedField; + /** + * Documentation for documentedEnumField. + */ + public DummyEnum documentedEnumField; + /** * Documentation for getter property. */ diff --git a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/parser/Jackson2ParserPropertiesTest.java b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/parser/Jackson2ParserPropertiesTest.java index 8fd084600..41bd18c48 100644 --- a/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/parser/Jackson2ParserPropertiesTest.java +++ b/typescript-generator-core/src/test/java/cz/habarta/typescript/generator/parser/Jackson2ParserPropertiesTest.java @@ -82,7 +82,7 @@ public void testPropertyOrder() { Assert.assertEquals(Arrays.asList("id1", "id2", "name", "password1", "password2"), getProperties(User1.class)); Assert.assertEquals(Arrays.asList("id1", "id2", "name", "password1", "password2"), getProperties(User2.class)); Assert.assertEquals(Arrays.asList("id1", "id2", "name", "password1", "password2"), getProperties(User3.class)); - Assert.assertEquals(Arrays.asList("id1", "id2", "name", "password1", "password2"), getProperties(User4.class)); + Assert.assertEquals(Arrays.asList("password1", "id1", "password2", "id2", "name"), getProperties(User4.class)); } private List getProperties(Class beanClass) {