From 6194d284f5559acc5f23a402f577bac655878f92 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 14 Jul 2026 18:41:17 +0100 Subject: Rename java-junit to java --- examples/01-struct/hobgoblin.json5 | 4 +- examples/01-struct/output/java-junit/.gitignore | 2 - examples/01-struct/output/java-junit/pom.xml | 1 - .../test/java/org/zwobble/example/PointTests.java | 16 -- examples/01-struct/output/java/.gitignore | 2 + examples/01-struct/output/java/pom.xml | 1 + .../test/java/org/zwobble/example/PointTests.java | 16 ++ examples/02-sum/hobgoblin.json5 | 2 +- examples/02-sum/output/java-junit/.gitignore | 2 - examples/02-sum/output/java-junit/pom.xml | 1 - .../test/java/org/zwobble/example/ShapesTests.java | 33 ---- examples/02-sum/output/java/.gitignore | 2 + examples/02-sum/output/java/pom.xml | 1 + .../test/java/org/zwobble/example/ShapesTests.java | 33 ++++ examples/03-inductive-data-types/hobgoblin.json5 | 2 +- .../output/java-junit/.gitignore | 2 - .../output/java-junit/pom.xml | 1 - .../java/org/zwobble/example/ArithmeticTests.java | 34 ---- .../03-inductive-data-types/output/java/.gitignore | 2 + .../03-inductive-data-types/output/java/pom.xml | 1 + .../java/org/zwobble/example/ArithmeticTests.java | 34 ++++ examples/04-enum/hobgoblin.json5 | 2 +- examples/04-enum/output/java-junit/.gitignore | 2 - examples/04-enum/output/java-junit/pom.xml | 1 - .../java/org/zwobble/example/NumbersTests.java | 22 --- examples/04-enum/output/java/.gitignore | 2 + examples/04-enum/output/java/pom.xml | 1 + .../java/org/zwobble/example/NumbersTests.java | 22 +++ examples/05-list/hobgoblin.json5 | 2 +- examples/05-list/output/java-junit/.gitignore | 2 - examples/05-list/output/java-junit/pom.xml | 1 - .../test/java/org/zwobble/example/PointTests.java | 32 ---- examples/05-list/output/java/.gitignore | 2 + examples/05-list/output/java/pom.xml | 1 + .../test/java/org/zwobble/example/PointTests.java | 32 ++++ examples/06-native-type/hobgoblin.json5 | 2 +- .../06-native-type/output/java-junit/.gitignore | 2 - examples/06-native-type/output/java-junit/pom.xml | 1 - .../example/types/point/HobgoblinNativePoint.java | 7 - .../org/zwobble/example/types/point/Point.java | 4 - .../test/java/org/zwobble/example/PointTests.java | 13 -- examples/06-native-type/output/java/.gitignore | 2 + examples/06-native-type/output/java/pom.xml | 1 + .../example/types/point/HobgoblinNativePoint.java | 7 + .../org/zwobble/example/types/point/Point.java | 4 + .../test/java/org/zwobble/example/PointTests.java | 13 ++ .../07-native-type-custom-config/hobgoblin.json5 | 2 +- .../output/java-junit/.gitignore | 2 - .../output/java-junit/pom.xml | 1 - .../src/main/java/org/zwobble/example/Point.java | 4 - .../example/types/point/HobgoblinNativePoint.java | 9 - .../test/java/org/zwobble/example/PointTests.java | 12 -- .../output/java/.gitignore | 2 + .../output/java/pom.xml | 1 + .../src/main/java/org/zwobble/example/Point.java | 4 + .../example/types/point/HobgoblinNativePoint.java | 9 + .../test/java/org/zwobble/example/PointTests.java | 12 ++ examples/08-custom-code/hobgoblin.json5 | 2 +- .../08-custom-code/output/java-junit/.gitignore | 2 - examples/08-custom-code/output/java-junit/pom.xml | 1 - .../org/zwobble/example/types/shapes/Square.java | 33 ---- .../test/java/org/zwobble/example/ShapesTests.java | 13 -- examples/08-custom-code/output/java/.gitignore | 2 + examples/08-custom-code/output/java/pom.xml | 1 + .../org/zwobble/example/types/shapes/Square.java | 33 ++++ .../test/java/org/zwobble/example/ShapesTests.java | 13 ++ examples/09-imports/hobgoblin.json5 | 2 +- examples/09-imports/output/java-junit/.gitignore | 2 - examples/09-imports/output/java-junit/pom.xml | 1 - .../test/java/org/zwobble/example/LineTests.java | 15 -- examples/09-imports/output/java/.gitignore | 2 + examples/09-imports/output/java/pom.xml | 1 + .../test/java/org/zwobble/example/LineTests.java | 15 ++ examples/10-transient-0/hobgoblin.json5 | 4 +- .../10-transient-0/output/java-junit/.gitignore | 2 - examples/10-transient-0/output/java-junit/pom.xml | 1 - .../java/org/zwobble/example/Transient0Tests.java | 185 --------------------- examples/10-transient-0/output/java/.gitignore | 2 + examples/10-transient-0/output/java/pom.xml | 1 + .../java/org/zwobble/example/Transient0Tests.java | 185 +++++++++++++++++++++ 80 files changed, 474 insertions(+), 474 deletions(-) delete mode 100644 examples/01-struct/output/java-junit/.gitignore delete mode 120000 examples/01-struct/output/java-junit/pom.xml delete mode 100644 examples/01-struct/output/java-junit/src/test/java/org/zwobble/example/PointTests.java create mode 100644 examples/01-struct/output/java/.gitignore create mode 120000 examples/01-struct/output/java/pom.xml create mode 100644 examples/01-struct/output/java/src/test/java/org/zwobble/example/PointTests.java delete mode 100644 examples/02-sum/output/java-junit/.gitignore delete mode 120000 examples/02-sum/output/java-junit/pom.xml delete mode 100644 examples/02-sum/output/java-junit/src/test/java/org/zwobble/example/ShapesTests.java create mode 100644 examples/02-sum/output/java/.gitignore create mode 120000 examples/02-sum/output/java/pom.xml create mode 100644 examples/02-sum/output/java/src/test/java/org/zwobble/example/ShapesTests.java delete mode 100644 examples/03-inductive-data-types/output/java-junit/.gitignore delete mode 120000 examples/03-inductive-data-types/output/java-junit/pom.xml delete mode 100644 examples/03-inductive-data-types/output/java-junit/src/test/java/org/zwobble/example/ArithmeticTests.java create mode 100644 examples/03-inductive-data-types/output/java/.gitignore create mode 120000 examples/03-inductive-data-types/output/java/pom.xml create mode 100644 examples/03-inductive-data-types/output/java/src/test/java/org/zwobble/example/ArithmeticTests.java delete mode 100644 examples/04-enum/output/java-junit/.gitignore delete mode 120000 examples/04-enum/output/java-junit/pom.xml delete mode 100644 examples/04-enum/output/java-junit/src/test/java/org/zwobble/example/NumbersTests.java create mode 100644 examples/04-enum/output/java/.gitignore create mode 120000 examples/04-enum/output/java/pom.xml create mode 100644 examples/04-enum/output/java/src/test/java/org/zwobble/example/NumbersTests.java delete mode 100644 examples/05-list/output/java-junit/.gitignore delete mode 120000 examples/05-list/output/java-junit/pom.xml delete mode 100644 examples/05-list/output/java-junit/src/test/java/org/zwobble/example/PointTests.java create mode 100644 examples/05-list/output/java/.gitignore create mode 120000 examples/05-list/output/java/pom.xml create mode 100644 examples/05-list/output/java/src/test/java/org/zwobble/example/PointTests.java delete mode 100644 examples/06-native-type/output/java-junit/.gitignore delete mode 120000 examples/06-native-type/output/java-junit/pom.xml delete mode 100644 examples/06-native-type/output/java-junit/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java delete mode 100644 examples/06-native-type/output/java-junit/src/main/java/org/zwobble/example/types/point/Point.java delete mode 100644 examples/06-native-type/output/java-junit/src/test/java/org/zwobble/example/PointTests.java create mode 100644 examples/06-native-type/output/java/.gitignore create mode 120000 examples/06-native-type/output/java/pom.xml create mode 100644 examples/06-native-type/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java create mode 100644 examples/06-native-type/output/java/src/main/java/org/zwobble/example/types/point/Point.java create mode 100644 examples/06-native-type/output/java/src/test/java/org/zwobble/example/PointTests.java delete mode 100644 examples/07-native-type-custom-config/output/java-junit/.gitignore delete mode 120000 examples/07-native-type-custom-config/output/java-junit/pom.xml delete mode 100644 examples/07-native-type-custom-config/output/java-junit/src/main/java/org/zwobble/example/Point.java delete mode 100644 examples/07-native-type-custom-config/output/java-junit/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java delete mode 100644 examples/07-native-type-custom-config/output/java-junit/src/test/java/org/zwobble/example/PointTests.java create mode 100644 examples/07-native-type-custom-config/output/java/.gitignore create mode 120000 examples/07-native-type-custom-config/output/java/pom.xml create mode 100644 examples/07-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Point.java create mode 100644 examples/07-native-type-custom-config/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java create mode 100644 examples/07-native-type-custom-config/output/java/src/test/java/org/zwobble/example/PointTests.java delete mode 100644 examples/08-custom-code/output/java-junit/.gitignore delete mode 120000 examples/08-custom-code/output/java-junit/pom.xml delete mode 100644 examples/08-custom-code/output/java-junit/src/main/java/org/zwobble/example/types/shapes/Square.java delete mode 100644 examples/08-custom-code/output/java-junit/src/test/java/org/zwobble/example/ShapesTests.java create mode 100644 examples/08-custom-code/output/java/.gitignore create mode 120000 examples/08-custom-code/output/java/pom.xml create mode 100644 examples/08-custom-code/output/java/src/main/java/org/zwobble/example/types/shapes/Square.java create mode 100644 examples/08-custom-code/output/java/src/test/java/org/zwobble/example/ShapesTests.java delete mode 100644 examples/09-imports/output/java-junit/.gitignore delete mode 120000 examples/09-imports/output/java-junit/pom.xml delete mode 100644 examples/09-imports/output/java-junit/src/test/java/org/zwobble/example/LineTests.java create mode 100644 examples/09-imports/output/java/.gitignore create mode 120000 examples/09-imports/output/java/pom.xml create mode 100644 examples/09-imports/output/java/src/test/java/org/zwobble/example/LineTests.java delete mode 100644 examples/10-transient-0/output/java-junit/.gitignore delete mode 120000 examples/10-transient-0/output/java-junit/pom.xml delete mode 100644 examples/10-transient-0/output/java-junit/src/test/java/org/zwobble/example/Transient0Tests.java create mode 100644 examples/10-transient-0/output/java/.gitignore create mode 120000 examples/10-transient-0/output/java/pom.xml create mode 100644 examples/10-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java (limited to 'examples') diff --git a/examples/01-struct/hobgoblin.json5 b/examples/01-struct/hobgoblin.json5 index 01ebdd7..19e0f93 100644 --- a/examples/01-struct/hobgoblin.json5 +++ b/examples/01-struct/hobgoblin.json5 @@ -8,11 +8,11 @@ generators: [ { generator: "java-types", - path: "output/java-junit/src/gen/java", + path: "output/java/src/gen/java", }, { generator: "java-precisely-matchers", - path: "output/java-junit/src/gen/java", + path: "output/java/src/gen/java", }, { generator: "rust-types", diff --git a/examples/01-struct/output/java-junit/.gitignore b/examples/01-struct/output/java-junit/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/01-struct/output/java-junit/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/01-struct/output/java-junit/pom.xml b/examples/01-struct/output/java-junit/pom.xml deleted file mode 120000 index 445fa65..0000000 --- a/examples/01-struct/output/java-junit/pom.xml +++ /dev/null @@ -1 +0,0 @@ -../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/01-struct/output/java-junit/src/test/java/org/zwobble/example/PointTests.java b/examples/01-struct/output/java-junit/src/test/java/org/zwobble/example/PointTests.java deleted file mode 100644 index 18a1961..0000000 --- a/examples/01-struct/output/java-junit/src/test/java/org/zwobble/example/PointTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.zwobble.example; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.jupiter.api.Test; -import org.zwobble.example.types.point.Point; - -public class PointTests { - @Test - public void pointFields() { - Point point = new Point(10, 25); - int x = point.x(); - int y = point.y(); - assertEquals(x, 10); - assertEquals(y, 25); - } -} diff --git a/examples/01-struct/output/java/.gitignore b/examples/01-struct/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/01-struct/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/01-struct/output/java/pom.xml b/examples/01-struct/output/java/pom.xml new file mode 120000 index 0000000..445fa65 --- /dev/null +++ b/examples/01-struct/output/java/pom.xml @@ -0,0 +1 @@ +../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/01-struct/output/java/src/test/java/org/zwobble/example/PointTests.java b/examples/01-struct/output/java/src/test/java/org/zwobble/example/PointTests.java new file mode 100644 index 0000000..18a1961 --- /dev/null +++ b/examples/01-struct/output/java/src/test/java/org/zwobble/example/PointTests.java @@ -0,0 +1,16 @@ +package org.zwobble.example; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; +import org.zwobble.example.types.point.Point; + +public class PointTests { + @Test + public void pointFields() { + Point point = new Point(10, 25); + int x = point.x(); + int y = point.y(); + assertEquals(x, 10); + assertEquals(y, 25); + } +} diff --git a/examples/02-sum/hobgoblin.json5 b/examples/02-sum/hobgoblin.json5 index 8a073ac..12713d4 100644 --- a/examples/02-sum/hobgoblin.json5 +++ b/examples/02-sum/hobgoblin.json5 @@ -8,7 +8,7 @@ generators: [ { generator: "java-types", - path: "output/java-junit/src/gen/java", + path: "output/java/src/gen/java", }, { generator: "rust-types", diff --git a/examples/02-sum/output/java-junit/.gitignore b/examples/02-sum/output/java-junit/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/02-sum/output/java-junit/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/02-sum/output/java-junit/pom.xml b/examples/02-sum/output/java-junit/pom.xml deleted file mode 120000 index 445fa65..0000000 --- a/examples/02-sum/output/java-junit/pom.xml +++ /dev/null @@ -1 +0,0 @@ -../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/02-sum/output/java-junit/src/test/java/org/zwobble/example/ShapesTests.java b/examples/02-sum/output/java-junit/src/test/java/org/zwobble/example/ShapesTests.java deleted file mode 100644 index 2554ca5..0000000 --- a/examples/02-sum/output/java-junit/src/test/java/org/zwobble/example/ShapesTests.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.zwobble.example; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.jupiter.api.Test; -import org.zwobble.example.types.shapes.Shape; -import org.zwobble.example.types.shapes.Rectangle; -import org.zwobble.example.types.shapes.Triangle; - -public class ShapesTests { - @Test - public void rectangle() { - Shape rectangle = new Rectangle(10, 25); - int area = area(rectangle); - assertEquals(area, 250); - } - - @Test - public void triangle() { - Shape triangle = new Triangle(10, 25); - int area = area(triangle); - assertEquals(area, 125); - } - - private static int area(Shape shape) { - return switch (shape) { - case Rectangle(var width, var height) -> - width * height; - - case Triangle(var width, var height) -> - width * height / 2; - }; - } -} diff --git a/examples/02-sum/output/java/.gitignore b/examples/02-sum/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/02-sum/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/02-sum/output/java/pom.xml b/examples/02-sum/output/java/pom.xml new file mode 120000 index 0000000..445fa65 --- /dev/null +++ b/examples/02-sum/output/java/pom.xml @@ -0,0 +1 @@ +../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/02-sum/output/java/src/test/java/org/zwobble/example/ShapesTests.java b/examples/02-sum/output/java/src/test/java/org/zwobble/example/ShapesTests.java new file mode 100644 index 0000000..2554ca5 --- /dev/null +++ b/examples/02-sum/output/java/src/test/java/org/zwobble/example/ShapesTests.java @@ -0,0 +1,33 @@ +package org.zwobble.example; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; +import org.zwobble.example.types.shapes.Shape; +import org.zwobble.example.types.shapes.Rectangle; +import org.zwobble.example.types.shapes.Triangle; + +public class ShapesTests { + @Test + public void rectangle() { + Shape rectangle = new Rectangle(10, 25); + int area = area(rectangle); + assertEquals(area, 250); + } + + @Test + public void triangle() { + Shape triangle = new Triangle(10, 25); + int area = area(triangle); + assertEquals(area, 125); + } + + private static int area(Shape shape) { + return switch (shape) { + case Rectangle(var width, var height) -> + width * height; + + case Triangle(var width, var height) -> + width * height / 2; + }; + } +} diff --git a/examples/03-inductive-data-types/hobgoblin.json5 b/examples/03-inductive-data-types/hobgoblin.json5 index 8a073ac..12713d4 100644 --- a/examples/03-inductive-data-types/hobgoblin.json5 +++ b/examples/03-inductive-data-types/hobgoblin.json5 @@ -8,7 +8,7 @@ generators: [ { generator: "java-types", - path: "output/java-junit/src/gen/java", + path: "output/java/src/gen/java", }, { generator: "rust-types", diff --git a/examples/03-inductive-data-types/output/java-junit/.gitignore b/examples/03-inductive-data-types/output/java-junit/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/03-inductive-data-types/output/java-junit/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/03-inductive-data-types/output/java-junit/pom.xml b/examples/03-inductive-data-types/output/java-junit/pom.xml deleted file mode 120000 index 445fa65..0000000 --- a/examples/03-inductive-data-types/output/java-junit/pom.xml +++ /dev/null @@ -1 +0,0 @@ -../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/03-inductive-data-types/output/java-junit/src/test/java/org/zwobble/example/ArithmeticTests.java b/examples/03-inductive-data-types/output/java-junit/src/test/java/org/zwobble/example/ArithmeticTests.java deleted file mode 100644 index 5623af5..0000000 --- a/examples/03-inductive-data-types/output/java-junit/src/test/java/org/zwobble/example/ArithmeticTests.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.zwobble.example; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.jupiter.api.Test; -import org.zwobble.example.types.arithmetic.Add; -import org.zwobble.example.types.arithmetic.Const; -import org.zwobble.example.types.arithmetic.Expression; - -public class ArithmeticTests { - @Test - public void eval() { - Expression expression = new Add( - new Add( - new Const(42), - new Const(47) - ), - new Const(52) - ); - - int result = eval(expression); - - assertEquals(result, 141); - } - - private int eval(Expression expression) { - return switch (expression) { - case Add(var left, var right) -> - eval(left) + eval(right); - - case Const(var value) -> - value; - }; - } -} diff --git a/examples/03-inductive-data-types/output/java/.gitignore b/examples/03-inductive-data-types/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/03-inductive-data-types/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/03-inductive-data-types/output/java/pom.xml b/examples/03-inductive-data-types/output/java/pom.xml new file mode 120000 index 0000000..445fa65 --- /dev/null +++ b/examples/03-inductive-data-types/output/java/pom.xml @@ -0,0 +1 @@ +../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/03-inductive-data-types/output/java/src/test/java/org/zwobble/example/ArithmeticTests.java b/examples/03-inductive-data-types/output/java/src/test/java/org/zwobble/example/ArithmeticTests.java new file mode 100644 index 0000000..5623af5 --- /dev/null +++ b/examples/03-inductive-data-types/output/java/src/test/java/org/zwobble/example/ArithmeticTests.java @@ -0,0 +1,34 @@ +package org.zwobble.example; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; +import org.zwobble.example.types.arithmetic.Add; +import org.zwobble.example.types.arithmetic.Const; +import org.zwobble.example.types.arithmetic.Expression; + +public class ArithmeticTests { + @Test + public void eval() { + Expression expression = new Add( + new Add( + new Const(42), + new Const(47) + ), + new Const(52) + ); + + int result = eval(expression); + + assertEquals(result, 141); + } + + private int eval(Expression expression) { + return switch (expression) { + case Add(var left, var right) -> + eval(left) + eval(right); + + case Const(var value) -> + value; + }; + } +} diff --git a/examples/04-enum/hobgoblin.json5 b/examples/04-enum/hobgoblin.json5 index 8a073ac..12713d4 100644 --- a/examples/04-enum/hobgoblin.json5 +++ b/examples/04-enum/hobgoblin.json5 @@ -8,7 +8,7 @@ generators: [ { generator: "java-types", - path: "output/java-junit/src/gen/java", + path: "output/java/src/gen/java", }, { generator: "rust-types", diff --git a/examples/04-enum/output/java-junit/.gitignore b/examples/04-enum/output/java-junit/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/04-enum/output/java-junit/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/04-enum/output/java-junit/pom.xml b/examples/04-enum/output/java-junit/pom.xml deleted file mode 120000 index 445fa65..0000000 --- a/examples/04-enum/output/java-junit/pom.xml +++ /dev/null @@ -1 +0,0 @@ -../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/04-enum/output/java-junit/src/test/java/org/zwobble/example/NumbersTests.java b/examples/04-enum/output/java-junit/src/test/java/org/zwobble/example/NumbersTests.java deleted file mode 100644 index 95b85a4..0000000 --- a/examples/04-enum/output/java-junit/src/test/java/org/zwobble/example/NumbersTests.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.zwobble.example; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.jupiter.api.Test; -import org.zwobble.example.types.numbers.SmallNumber; - -public class NumbersTests { - @Test - public void canEvalSmallNumbers() { - assertEquals(eval(SmallNumber.ZERO), 0); - assertEquals(eval(SmallNumber.ONE), 1); - assertEquals(eval(SmallNumber.TWO), 2); - } - - private int eval(SmallNumber smallNumber) { - return switch (smallNumber) { - case ZERO -> 0; - case ONE -> 1; - case TWO -> 2; - }; - } -} diff --git a/examples/04-enum/output/java/.gitignore b/examples/04-enum/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/04-enum/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/04-enum/output/java/pom.xml b/examples/04-enum/output/java/pom.xml new file mode 120000 index 0000000..445fa65 --- /dev/null +++ b/examples/04-enum/output/java/pom.xml @@ -0,0 +1 @@ +../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/04-enum/output/java/src/test/java/org/zwobble/example/NumbersTests.java b/examples/04-enum/output/java/src/test/java/org/zwobble/example/NumbersTests.java new file mode 100644 index 0000000..95b85a4 --- /dev/null +++ b/examples/04-enum/output/java/src/test/java/org/zwobble/example/NumbersTests.java @@ -0,0 +1,22 @@ +package org.zwobble.example; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; +import org.zwobble.example.types.numbers.SmallNumber; + +public class NumbersTests { + @Test + public void canEvalSmallNumbers() { + assertEquals(eval(SmallNumber.ZERO), 0); + assertEquals(eval(SmallNumber.ONE), 1); + assertEquals(eval(SmallNumber.TWO), 2); + } + + private int eval(SmallNumber smallNumber) { + return switch (smallNumber) { + case ZERO -> 0; + case ONE -> 1; + case TWO -> 2; + }; + } +} diff --git a/examples/05-list/hobgoblin.json5 b/examples/05-list/hobgoblin.json5 index 8a073ac..12713d4 100644 --- a/examples/05-list/hobgoblin.json5 +++ b/examples/05-list/hobgoblin.json5 @@ -8,7 +8,7 @@ generators: [ { generator: "java-types", - path: "output/java-junit/src/gen/java", + path: "output/java/src/gen/java", }, { generator: "rust-types", diff --git a/examples/05-list/output/java-junit/.gitignore b/examples/05-list/output/java-junit/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/05-list/output/java-junit/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/05-list/output/java-junit/pom.xml b/examples/05-list/output/java-junit/pom.xml deleted file mode 120000 index 445fa65..0000000 --- a/examples/05-list/output/java-junit/pom.xml +++ /dev/null @@ -1 +0,0 @@ -../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/05-list/output/java-junit/src/test/java/org/zwobble/example/PointTests.java b/examples/05-list/output/java-junit/src/test/java/org/zwobble/example/PointTests.java deleted file mode 100644 index e1528b5..0000000 --- a/examples/05-list/output/java-junit/src/test/java/org/zwobble/example/PointTests.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.zwobble.example; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.jupiter.api.Test; -import java.util.List; -import org.zwobble.example.types.point.Path; -import org.zwobble.example.types.point.Point; - -public class PointTests { - @Test - public void canCreatePathWithConstructor() { - Path path = new Path(List.of( - new Point(10, 25), - new Point(25, 10) - )); - - assertEquals(path.points().size(), 2); - } - - @Test - public void canCreatePathWithBuilder() { - Path path = Path.arbitrary() - .addPoint(new Point(10, 25)) - .addPoint(new Point(25, 10)) - .build(); - - assertEquals(path, new Path(List.of( - new Point(10, 25), - new Point(25, 10) - ))); - } -} diff --git a/examples/05-list/output/java/.gitignore b/examples/05-list/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/05-list/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/05-list/output/java/pom.xml b/examples/05-list/output/java/pom.xml new file mode 120000 index 0000000..445fa65 --- /dev/null +++ b/examples/05-list/output/java/pom.xml @@ -0,0 +1 @@ +../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/05-list/output/java/src/test/java/org/zwobble/example/PointTests.java b/examples/05-list/output/java/src/test/java/org/zwobble/example/PointTests.java new file mode 100644 index 0000000..e1528b5 --- /dev/null +++ b/examples/05-list/output/java/src/test/java/org/zwobble/example/PointTests.java @@ -0,0 +1,32 @@ +package org.zwobble.example; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; +import java.util.List; +import org.zwobble.example.types.point.Path; +import org.zwobble.example.types.point.Point; + +public class PointTests { + @Test + public void canCreatePathWithConstructor() { + Path path = new Path(List.of( + new Point(10, 25), + new Point(25, 10) + )); + + assertEquals(path.points().size(), 2); + } + + @Test + public void canCreatePathWithBuilder() { + Path path = Path.arbitrary() + .addPoint(new Point(10, 25)) + .addPoint(new Point(25, 10)) + .build(); + + assertEquals(path, new Path(List.of( + new Point(10, 25), + new Point(25, 10) + ))); + } +} diff --git a/examples/06-native-type/hobgoblin.json5 b/examples/06-native-type/hobgoblin.json5 index fcaa3b7..a0f60c3 100644 --- a/examples/06-native-type/hobgoblin.json5 +++ b/examples/06-native-type/hobgoblin.json5 @@ -8,7 +8,7 @@ generators: [ { generator: "java-types", - path: "output/java-junit/src/gen/java", + path: "output/java/src/gen/java", }, { generator: "rust-types", diff --git a/examples/06-native-type/output/java-junit/.gitignore b/examples/06-native-type/output/java-junit/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/06-native-type/output/java-junit/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/06-native-type/output/java-junit/pom.xml b/examples/06-native-type/output/java-junit/pom.xml deleted file mode 120000 index 445fa65..0000000 --- a/examples/06-native-type/output/java-junit/pom.xml +++ /dev/null @@ -1 +0,0 @@ -../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/06-native-type/output/java-junit/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java b/examples/06-native-type/output/java-junit/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java deleted file mode 100644 index bdb5427..0000000 --- a/examples/06-native-type/output/java-junit/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.zwobble.example.types.point; - -public class HobgoblinNativePoint { - public static Point arbitraryPoint() { - return new Point(0, 0); - } -} diff --git a/examples/06-native-type/output/java-junit/src/main/java/org/zwobble/example/types/point/Point.java b/examples/06-native-type/output/java-junit/src/main/java/org/zwobble/example/types/point/Point.java deleted file mode 100644 index cd26290..0000000 --- a/examples/06-native-type/output/java-junit/src/main/java/org/zwobble/example/types/point/Point.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.zwobble.example.types.point; - -public record Point(int x, int y) { -} diff --git a/examples/06-native-type/output/java-junit/src/test/java/org/zwobble/example/PointTests.java b/examples/06-native-type/output/java-junit/src/test/java/org/zwobble/example/PointTests.java deleted file mode 100644 index 8482673..0000000 --- a/examples/06-native-type/output/java-junit/src/test/java/org/zwobble/example/PointTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.zwobble.example; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.jupiter.api.Test; -import org.zwobble.example.types.point.Line; -import org.zwobble.example.types.point.Point; - -public class PointTests { - @Test - public void canUseNativeTypes() { - Line line = new Line(new Point(10, 25), new Point(25, 10)); - } -} diff --git a/examples/06-native-type/output/java/.gitignore b/examples/06-native-type/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/06-native-type/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/06-native-type/output/java/pom.xml b/examples/06-native-type/output/java/pom.xml new file mode 120000 index 0000000..445fa65 --- /dev/null +++ b/examples/06-native-type/output/java/pom.xml @@ -0,0 +1 @@ +../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/06-native-type/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java b/examples/06-native-type/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java new file mode 100644 index 0000000..bdb5427 --- /dev/null +++ b/examples/06-native-type/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java @@ -0,0 +1,7 @@ +package org.zwobble.example.types.point; + +public class HobgoblinNativePoint { + public static Point arbitraryPoint() { + return new Point(0, 0); + } +} diff --git a/examples/06-native-type/output/java/src/main/java/org/zwobble/example/types/point/Point.java b/examples/06-native-type/output/java/src/main/java/org/zwobble/example/types/point/Point.java new file mode 100644 index 0000000..cd26290 --- /dev/null +++ b/examples/06-native-type/output/java/src/main/java/org/zwobble/example/types/point/Point.java @@ -0,0 +1,4 @@ +package org.zwobble.example.types.point; + +public record Point(int x, int y) { +} diff --git a/examples/06-native-type/output/java/src/test/java/org/zwobble/example/PointTests.java b/examples/06-native-type/output/java/src/test/java/org/zwobble/example/PointTests.java new file mode 100644 index 0000000..8482673 --- /dev/null +++ b/examples/06-native-type/output/java/src/test/java/org/zwobble/example/PointTests.java @@ -0,0 +1,13 @@ +package org.zwobble.example; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; +import org.zwobble.example.types.point.Line; +import org.zwobble.example.types.point.Point; + +public class PointTests { + @Test + public void canUseNativeTypes() { + Line line = new Line(new Point(10, 25), new Point(25, 10)); + } +} diff --git a/examples/07-native-type-custom-config/hobgoblin.json5 b/examples/07-native-type-custom-config/hobgoblin.json5 index de9f8b8..f925903 100644 --- a/examples/07-native-type-custom-config/hobgoblin.json5 +++ b/examples/07-native-type-custom-config/hobgoblin.json5 @@ -22,7 +22,7 @@ generators: [ { generator: "java-types", - path: "output/java-junit/src/gen/java", + path: "output/java/src/gen/java", }, { generator: "rust-types", diff --git a/examples/07-native-type-custom-config/output/java-junit/.gitignore b/examples/07-native-type-custom-config/output/java-junit/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/07-native-type-custom-config/output/java-junit/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/07-native-type-custom-config/output/java-junit/pom.xml b/examples/07-native-type-custom-config/output/java-junit/pom.xml deleted file mode 120000 index 445fa65..0000000 --- a/examples/07-native-type-custom-config/output/java-junit/pom.xml +++ /dev/null @@ -1 +0,0 @@ -../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/07-native-type-custom-config/output/java-junit/src/main/java/org/zwobble/example/Point.java b/examples/07-native-type-custom-config/output/java-junit/src/main/java/org/zwobble/example/Point.java deleted file mode 100644 index 8862a62..0000000 --- a/examples/07-native-type-custom-config/output/java-junit/src/main/java/org/zwobble/example/Point.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.zwobble.example; - -public record Point(int x, int y) { -} diff --git a/examples/07-native-type-custom-config/output/java-junit/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java b/examples/07-native-type-custom-config/output/java-junit/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java deleted file mode 100644 index 74ac856..0000000 --- a/examples/07-native-type-custom-config/output/java-junit/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.zwobble.example.types.point; - -import org.zwobble.example.Point; - -public class HobgoblinNativePoint { - public static Point arbitraryPoint() { - return new Point(0, 0); - } -} diff --git a/examples/07-native-type-custom-config/output/java-junit/src/test/java/org/zwobble/example/PointTests.java b/examples/07-native-type-custom-config/output/java-junit/src/test/java/org/zwobble/example/PointTests.java deleted file mode 100644 index ea635ca..0000000 --- a/examples/07-native-type-custom-config/output/java-junit/src/test/java/org/zwobble/example/PointTests.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.zwobble.example; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.jupiter.api.Test; -import org.zwobble.example.types.point.Line; - -public class PointTests { - @Test - public void canUseNativeTypes() { - Line line = new Line(new Point(10, 25), new Point(25, 10)); - } -} diff --git a/examples/07-native-type-custom-config/output/java/.gitignore b/examples/07-native-type-custom-config/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/07-native-type-custom-config/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/07-native-type-custom-config/output/java/pom.xml b/examples/07-native-type-custom-config/output/java/pom.xml new file mode 120000 index 0000000..445fa65 --- /dev/null +++ b/examples/07-native-type-custom-config/output/java/pom.xml @@ -0,0 +1 @@ +../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/07-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Point.java b/examples/07-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Point.java new file mode 100644 index 0000000..8862a62 --- /dev/null +++ b/examples/07-native-type-custom-config/output/java/src/main/java/org/zwobble/example/Point.java @@ -0,0 +1,4 @@ +package org.zwobble.example; + +public record Point(int x, int y) { +} diff --git a/examples/07-native-type-custom-config/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java b/examples/07-native-type-custom-config/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java new file mode 100644 index 0000000..74ac856 --- /dev/null +++ b/examples/07-native-type-custom-config/output/java/src/main/java/org/zwobble/example/types/point/HobgoblinNativePoint.java @@ -0,0 +1,9 @@ +package org.zwobble.example.types.point; + +import org.zwobble.example.Point; + +public class HobgoblinNativePoint { + public static Point arbitraryPoint() { + return new Point(0, 0); + } +} diff --git a/examples/07-native-type-custom-config/output/java/src/test/java/org/zwobble/example/PointTests.java b/examples/07-native-type-custom-config/output/java/src/test/java/org/zwobble/example/PointTests.java new file mode 100644 index 0000000..ea635ca --- /dev/null +++ b/examples/07-native-type-custom-config/output/java/src/test/java/org/zwobble/example/PointTests.java @@ -0,0 +1,12 @@ +package org.zwobble.example; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; +import org.zwobble.example.types.point.Line; + +public class PointTests { + @Test + public void canUseNativeTypes() { + Line line = new Line(new Point(10, 25), new Point(25, 10)); + } +} diff --git a/examples/08-custom-code/hobgoblin.json5 b/examples/08-custom-code/hobgoblin.json5 index ad403f8..1d08a40 100644 --- a/examples/08-custom-code/hobgoblin.json5 +++ b/examples/08-custom-code/hobgoblin.json5 @@ -8,7 +8,7 @@ generators: [ { generator: "java-types", - path: "output/java-junit/src/main/java", + path: "output/java/src/main/java", }, { generator: "rust-types", diff --git a/examples/08-custom-code/output/java-junit/.gitignore b/examples/08-custom-code/output/java-junit/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/08-custom-code/output/java-junit/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/08-custom-code/output/java-junit/pom.xml b/examples/08-custom-code/output/java-junit/pom.xml deleted file mode 120000 index 445fa65..0000000 --- a/examples/08-custom-code/output/java-junit/pom.xml +++ /dev/null @@ -1 +0,0 @@ -../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/08-custom-code/output/java-junit/src/main/java/org/zwobble/example/types/shapes/Square.java b/examples/08-custom-code/output/java-junit/src/main/java/org/zwobble/example/types/shapes/Square.java deleted file mode 100644 index 169d729..0000000 --- a/examples/08-custom-code/output/java-junit/src/main/java/org/zwobble/example/types/shapes/Square.java +++ /dev/null @@ -1,33 +0,0 @@ -// Generated by hobgoblin. - -package org.zwobble.example.types.shapes; - -// Custom area start: org.zwobble.example.types.shapes.Square imports -// Custom area end: org.zwobble.example.types.shapes.Square imports - -public record Square(int width) { - public static org.zwobble.example.types.shapes.Square.Builder arbitrary() { - return new org.zwobble.example.types.shapes.Square.Builder(0); - } - - public record Builder(int width) { - public org.zwobble.example.types.shapes.Square build() { - return new org.zwobble.example.types.shapes.Square(width); - } - - public org.zwobble.example.types.shapes.Square.Builder withWidth(int width) { - return new org.zwobble.example.types.shapes.Square.Builder(width); - } - - // Custom area start: org.zwobble.example.types.shapes.Square.Builder body - // Custom area end: org.zwobble.example.types.shapes.Square.Builder body - } - - // Custom area start: org.zwobble.example.types.shapes.Square body - - public int area() { - return this.width * this.width; - } - - // Custom area end: org.zwobble.example.types.shapes.Square body -} diff --git a/examples/08-custom-code/output/java-junit/src/test/java/org/zwobble/example/ShapesTests.java b/examples/08-custom-code/output/java-junit/src/test/java/org/zwobble/example/ShapesTests.java deleted file mode 100644 index fba8e6c..0000000 --- a/examples/08-custom-code/output/java-junit/src/test/java/org/zwobble/example/ShapesTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.zwobble.example; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.jupiter.api.Test; -import org.zwobble.example.types.shapes.Square; - -public class ShapesTests { - @Test - public void canUseCustomCode() { - Square square = new Square(10); - assertEquals(square.area(), 100); - } -} diff --git a/examples/08-custom-code/output/java/.gitignore b/examples/08-custom-code/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/08-custom-code/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/08-custom-code/output/java/pom.xml b/examples/08-custom-code/output/java/pom.xml new file mode 120000 index 0000000..445fa65 --- /dev/null +++ b/examples/08-custom-code/output/java/pom.xml @@ -0,0 +1 @@ +../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/08-custom-code/output/java/src/main/java/org/zwobble/example/types/shapes/Square.java b/examples/08-custom-code/output/java/src/main/java/org/zwobble/example/types/shapes/Square.java new file mode 100644 index 0000000..169d729 --- /dev/null +++ b/examples/08-custom-code/output/java/src/main/java/org/zwobble/example/types/shapes/Square.java @@ -0,0 +1,33 @@ +// Generated by hobgoblin. + +package org.zwobble.example.types.shapes; + +// Custom area start: org.zwobble.example.types.shapes.Square imports +// Custom area end: org.zwobble.example.types.shapes.Square imports + +public record Square(int width) { + public static org.zwobble.example.types.shapes.Square.Builder arbitrary() { + return new org.zwobble.example.types.shapes.Square.Builder(0); + } + + public record Builder(int width) { + public org.zwobble.example.types.shapes.Square build() { + return new org.zwobble.example.types.shapes.Square(width); + } + + public org.zwobble.example.types.shapes.Square.Builder withWidth(int width) { + return new org.zwobble.example.types.shapes.Square.Builder(width); + } + + // Custom area start: org.zwobble.example.types.shapes.Square.Builder body + // Custom area end: org.zwobble.example.types.shapes.Square.Builder body + } + + // Custom area start: org.zwobble.example.types.shapes.Square body + + public int area() { + return this.width * this.width; + } + + // Custom area end: org.zwobble.example.types.shapes.Square body +} diff --git a/examples/08-custom-code/output/java/src/test/java/org/zwobble/example/ShapesTests.java b/examples/08-custom-code/output/java/src/test/java/org/zwobble/example/ShapesTests.java new file mode 100644 index 0000000..fba8e6c --- /dev/null +++ b/examples/08-custom-code/output/java/src/test/java/org/zwobble/example/ShapesTests.java @@ -0,0 +1,13 @@ +package org.zwobble.example; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; +import org.zwobble.example.types.shapes.Square; + +public class ShapesTests { + @Test + public void canUseCustomCode() { + Square square = new Square(10); + assertEquals(square.area(), 100); + } +} diff --git a/examples/09-imports/hobgoblin.json5 b/examples/09-imports/hobgoblin.json5 index 8a073ac..12713d4 100644 --- a/examples/09-imports/hobgoblin.json5 +++ b/examples/09-imports/hobgoblin.json5 @@ -8,7 +8,7 @@ generators: [ { generator: "java-types", - path: "output/java-junit/src/gen/java", + path: "output/java/src/gen/java", }, { generator: "rust-types", diff --git a/examples/09-imports/output/java-junit/.gitignore b/examples/09-imports/output/java-junit/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/09-imports/output/java-junit/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/09-imports/output/java-junit/pom.xml b/examples/09-imports/output/java-junit/pom.xml deleted file mode 120000 index 445fa65..0000000 --- a/examples/09-imports/output/java-junit/pom.xml +++ /dev/null @@ -1 +0,0 @@ -../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/09-imports/output/java-junit/src/test/java/org/zwobble/example/LineTests.java b/examples/09-imports/output/java-junit/src/test/java/org/zwobble/example/LineTests.java deleted file mode 100644 index c376b19..0000000 --- a/examples/09-imports/output/java-junit/src/test/java/org/zwobble/example/LineTests.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.zwobble.example; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.jupiter.api.Test; -import org.zwobble.example.types.line.Line; -import org.zwobble.example.types.point.Point; - -public class LineTests { - @Test - public void canConstructLine() { - Point start = new Point(10, 25); - Point end = new Point(25, 10); - Line line = new Line(start, end); - } -} diff --git a/examples/09-imports/output/java/.gitignore b/examples/09-imports/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/09-imports/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/09-imports/output/java/pom.xml b/examples/09-imports/output/java/pom.xml new file mode 120000 index 0000000..445fa65 --- /dev/null +++ b/examples/09-imports/output/java/pom.xml @@ -0,0 +1 @@ +../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/09-imports/output/java/src/test/java/org/zwobble/example/LineTests.java b/examples/09-imports/output/java/src/test/java/org/zwobble/example/LineTests.java new file mode 100644 index 0000000..c376b19 --- /dev/null +++ b/examples/09-imports/output/java/src/test/java/org/zwobble/example/LineTests.java @@ -0,0 +1,15 @@ +package org.zwobble.example; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; +import org.zwobble.example.types.line.Line; +import org.zwobble.example.types.point.Point; + +public class LineTests { + @Test + public void canConstructLine() { + Point start = new Point(10, 25); + Point end = new Point(25, 10); + Line line = new Line(start, end); + } +} diff --git a/examples/10-transient-0/hobgoblin.json5 b/examples/10-transient-0/hobgoblin.json5 index ee08699..f3e455d 100644 --- a/examples/10-transient-0/hobgoblin.json5 +++ b/examples/10-transient-0/hobgoblin.json5 @@ -8,11 +8,11 @@ generators: [ { generator: "java-types", - path: "output/java-junit/src/gen/java", + path: "output/java/src/gen/java", }, { generator: "java-transient-0", - path: "output/java-junit/src/gen/java", + path: "output/java/src/gen/java", }, ], } diff --git a/examples/10-transient-0/output/java-junit/.gitignore b/examples/10-transient-0/output/java-junit/.gitignore deleted file mode 100644 index ff511d4..0000000 --- a/examples/10-transient-0/output/java-junit/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/gen/ -/target/ diff --git a/examples/10-transient-0/output/java-junit/pom.xml b/examples/10-transient-0/output/java-junit/pom.xml deleted file mode 120000 index 445fa65..0000000 --- a/examples/10-transient-0/output/java-junit/pom.xml +++ /dev/null @@ -1 +0,0 @@ -../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/10-transient-0/output/java-junit/src/test/java/org/zwobble/example/Transient0Tests.java b/examples/10-transient-0/output/java-junit/src/test/java/org/zwobble/example/Transient0Tests.java deleted file mode 100644 index e28e926..0000000 --- a/examples/10-transient-0/output/java-junit/src/test/java/org/zwobble/example/Transient0Tests.java +++ /dev/null @@ -1,185 +0,0 @@ -package org.zwobble.example; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.List; -import java.util.Optional; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.zwobble.example.types.data.EnumWithVariants; -import org.zwobble.example.types.data.HobgoblinTransient0Data; -import org.zwobble.example.types.data.InnerStruct; -import org.zwobble.example.types.data.OuterStruct; -import org.zwobble.example.types.data.StructWithBool; -import org.zwobble.example.types.data.StructWithInt32; -import org.zwobble.example.types.data.StructWithInt64; -import org.zwobble.example.types.data.StructWithList; -import org.zwobble.example.types.data.StructWithOption; -import org.zwobble.example.types.data.StructWithString; -import org.zwobble.example.types.data.VariantOne; -import org.zwobble.example.types.data.VariantTwo; - -public class Transient0Tests { - @Test - public void structWithBool() throws IOException { - var value = new StructWithBool(true, false); - - assertRoundTripEncoding( - value, - HobgoblinTransient0Data::encodeStructWithBool, - HobgoblinTransient0Data::decodeStructWithBool - ); - } - - @Test - public void structWithInt32() throws IOException { - var value = new StructWithInt32(10, 25); - - assertRoundTripEncoding( - value, - HobgoblinTransient0Data::encodeStructWithInt32, - HobgoblinTransient0Data::decodeStructWithInt32 - ); - } - - @Test - public void structWithInt64() throws IOException { - var value = new StructWithInt64(10, 25); - - assertRoundTripEncoding( - value, - HobgoblinTransient0Data::encodeStructWithInt64, - HobgoblinTransient0Data::decodeStructWithInt64 - ); - } - - @Test - public void structWithString() throws IOException { - var value = new StructWithString("abc", "def"); - - assertRoundTripEncoding( - value, - HobgoblinTransient0Data::encodeStructWithString, - HobgoblinTransient0Data::decodeStructWithString - ); - } - - @Test - public void nestedStruct() throws IOException { - var value = new OuterStruct(new InnerStruct(10, 25), 42); - - assertRoundTripEncoding( - value, - HobgoblinTransient0Data::encodeOuterStruct, - HobgoblinTransient0Data::decodeOuterStruct - ); - } - - @Test - public void structWithList() throws IOException { - var value = new StructWithList( - List.of(10L, 25L), - List.of( - new InnerStruct(42, 47), - new InnerStruct(52, 57), - new InnerStruct(62, 67) - ) - ); - - assertRoundTripEncoding( - value, - HobgoblinTransient0Data::encodeStructWithList, - HobgoblinTransient0Data::decodeStructWithList - ); - } - - @Test - public void structWithOptionNone() throws IOException { - var value = new StructWithOption( - Optional.empty(), - Optional.empty() - ); - - assertRoundTripEncoding( - value, - HobgoblinTransient0Data::encodeStructWithOption, - HobgoblinTransient0Data::decodeStructWithOption - ); - } - - @Test - public void structWithOptionSome() throws IOException { - var value = new StructWithOption( - Optional.of(10L), - Optional.of(new InnerStruct(42, 47)) - ); - - assertRoundTripEncoding( - value, - HobgoblinTransient0Data::encodeStructWithOption, - HobgoblinTransient0Data::decodeStructWithOption - ); - } - - @Test - public void enumWithVariants() throws IOException { - assertRoundTripEncoding( - EnumWithVariants.ZERO, - HobgoblinTransient0Data::encodeEnumWithVariants, - HobgoblinTransient0Data::decodeEnumWithVariants - ); - - assertRoundTripEncoding( - EnumWithVariants.ONE, - HobgoblinTransient0Data::encodeEnumWithVariants, - HobgoblinTransient0Data::decodeEnumWithVariants - ); - - assertRoundTripEncoding( - EnumWithVariants.TWO, - HobgoblinTransient0Data::encodeEnumWithVariants, - HobgoblinTransient0Data::decodeEnumWithVariants - ); - } - - @Test - public void sumWithVariants() throws IOException { - assertRoundTripEncoding( - new VariantOne(10), - HobgoblinTransient0Data::encodeSumWithVariants, - HobgoblinTransient0Data::decodeSumWithVariants - ); - - assertRoundTripEncoding( - new VariantTwo(25), - HobgoblinTransient0Data::encodeSumWithVariants, - HobgoblinTransient0Data::decodeSumWithVariants - ); - } - - private void assertRoundTripEncoding( - T value, - Encoder encoder, - Decoder decoder - ) throws IOException { - var outputStream = new ByteArrayOutputStream(); - encoder.encode(value, outputStream); - var bytes = outputStream.toByteArray(); - - var inputStream = new ByteArrayInputStream(bytes); - var decodedValue = decoder.decode(inputStream); - - Assertions.assertEquals(value, decodedValue); - } - - private interface Encoder { - void encode(T value, OutputStream outputStream) throws IOException; - } - - private interface Decoder { - T decode(InputStream inputStream) throws IOException; - } -} diff --git a/examples/10-transient-0/output/java/.gitignore b/examples/10-transient-0/output/java/.gitignore new file mode 100644 index 0000000..ff511d4 --- /dev/null +++ b/examples/10-transient-0/output/java/.gitignore @@ -0,0 +1,2 @@ +/src/gen/ +/target/ diff --git a/examples/10-transient-0/output/java/pom.xml b/examples/10-transient-0/output/java/pom.xml new file mode 120000 index 0000000..445fa65 --- /dev/null +++ b/examples/10-transient-0/output/java/pom.xml @@ -0,0 +1 @@ +../../../templates/java-junit/pom.xml \ No newline at end of file diff --git a/examples/10-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java b/examples/10-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java new file mode 100644 index 0000000..e28e926 --- /dev/null +++ b/examples/10-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java @@ -0,0 +1,185 @@ +package org.zwobble.example; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.List; +import java.util.Optional; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.zwobble.example.types.data.EnumWithVariants; +import org.zwobble.example.types.data.HobgoblinTransient0Data; +import org.zwobble.example.types.data.InnerStruct; +import org.zwobble.example.types.data.OuterStruct; +import org.zwobble.example.types.data.StructWithBool; +import org.zwobble.example.types.data.StructWithInt32; +import org.zwobble.example.types.data.StructWithInt64; +import org.zwobble.example.types.data.StructWithList; +import org.zwobble.example.types.data.StructWithOption; +import org.zwobble.example.types.data.StructWithString; +import org.zwobble.example.types.data.VariantOne; +import org.zwobble.example.types.data.VariantTwo; + +public class Transient0Tests { + @Test + public void structWithBool() throws IOException { + var value = new StructWithBool(true, false); + + assertRoundTripEncoding( + value, + HobgoblinTransient0Data::encodeStructWithBool, + HobgoblinTransient0Data::decodeStructWithBool + ); + } + + @Test + public void structWithInt32() throws IOException { + var value = new StructWithInt32(10, 25); + + assertRoundTripEncoding( + value, + HobgoblinTransient0Data::encodeStructWithInt32, + HobgoblinTransient0Data::decodeStructWithInt32 + ); + } + + @Test + public void structWithInt64() throws IOException { + var value = new StructWithInt64(10, 25); + + assertRoundTripEncoding( + value, + HobgoblinTransient0Data::encodeStructWithInt64, + HobgoblinTransient0Data::decodeStructWithInt64 + ); + } + + @Test + public void structWithString() throws IOException { + var value = new StructWithString("abc", "def"); + + assertRoundTripEncoding( + value, + HobgoblinTransient0Data::encodeStructWithString, + HobgoblinTransient0Data::decodeStructWithString + ); + } + + @Test + public void nestedStruct() throws IOException { + var value = new OuterStruct(new InnerStruct(10, 25), 42); + + assertRoundTripEncoding( + value, + HobgoblinTransient0Data::encodeOuterStruct, + HobgoblinTransient0Data::decodeOuterStruct + ); + } + + @Test + public void structWithList() throws IOException { + var value = new StructWithList( + List.of(10L, 25L), + List.of( + new InnerStruct(42, 47), + new InnerStruct(52, 57), + new InnerStruct(62, 67) + ) + ); + + assertRoundTripEncoding( + value, + HobgoblinTransient0Data::encodeStructWithList, + HobgoblinTransient0Data::decodeStructWithList + ); + } + + @Test + public void structWithOptionNone() throws IOException { + var value = new StructWithOption( + Optional.empty(), + Optional.empty() + ); + + assertRoundTripEncoding( + value, + HobgoblinTransient0Data::encodeStructWithOption, + HobgoblinTransient0Data::decodeStructWithOption + ); + } + + @Test + public void structWithOptionSome() throws IOException { + var value = new StructWithOption( + Optional.of(10L), + Optional.of(new InnerStruct(42, 47)) + ); + + assertRoundTripEncoding( + value, + HobgoblinTransient0Data::encodeStructWithOption, + HobgoblinTransient0Data::decodeStructWithOption + ); + } + + @Test + public void enumWithVariants() throws IOException { + assertRoundTripEncoding( + EnumWithVariants.ZERO, + HobgoblinTransient0Data::encodeEnumWithVariants, + HobgoblinTransient0Data::decodeEnumWithVariants + ); + + assertRoundTripEncoding( + EnumWithVariants.ONE, + HobgoblinTransient0Data::encodeEnumWithVariants, + HobgoblinTransient0Data::decodeEnumWithVariants + ); + + assertRoundTripEncoding( + EnumWithVariants.TWO, + HobgoblinTransient0Data::encodeEnumWithVariants, + HobgoblinTransient0Data::decodeEnumWithVariants + ); + } + + @Test + public void sumWithVariants() throws IOException { + assertRoundTripEncoding( + new VariantOne(10), + HobgoblinTransient0Data::encodeSumWithVariants, + HobgoblinTransient0Data::decodeSumWithVariants + ); + + assertRoundTripEncoding( + new VariantTwo(25), + HobgoblinTransient0Data::encodeSumWithVariants, + HobgoblinTransient0Data::decodeSumWithVariants + ); + } + + private void assertRoundTripEncoding( + T value, + Encoder encoder, + Decoder decoder + ) throws IOException { + var outputStream = new ByteArrayOutputStream(); + encoder.encode(value, outputStream); + var bytes = outputStream.toByteArray(); + + var inputStream = new ByteArrayInputStream(bytes); + var decodedValue = decoder.decode(inputStream); + + Assertions.assertEquals(value, decodedValue); + } + + private interface Encoder { + void encode(T value, OutputStream outputStream) throws IOException; + } + + private interface Decoder { + T decode(InputStream inputStream) throws IOException; + } +} -- cgit v1.2.3