summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-06-12 16:19:50 +0100
committerMichael Williamson <mike@zwobble.org>2026-06-12 16:19:50 +0100
commita1b78ec441aea70ae7494ca2b2925720d3f4ab3c (patch)
tree86000814178b333ca8e15ed432c80d71e6b4bc01 /src/test
parent89b30c6837e0fc3021df5e1a33ba362d45760f00 (diff)
Add Java constructor
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java91
1 files changed, 91 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java
index 426b1c1..0e24939 100644
--- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java
+++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java
@@ -578,6 +578,97 @@ public class JavaWriterTests {
}
@Test
+ public void emptyConstructor() throws IOException {
+ var java = new JavaConstructorDeclaration(
+ "Rectangle",
+ JavaVisibility.PUBLIC,
+ List.of(),
+ JavaBlock.EMPTY
+ );
+
+ var string = write(writer -> writer.writeClassBodyDeclaration(java));
+
+ assertThat(string, equalTo("""
+ public Rectangle() {
+ }"""
+ ));
+ }
+
+ @Test
+ public void publicConstructor() throws IOException {
+ var java = new JavaConstructorDeclaration(
+ "Rectangle",
+ JavaVisibility.PUBLIC,
+ List.of(),
+ JavaBlock.EMPTY
+ );
+
+ var string = write(writer -> writer.writeClassBodyDeclaration(java));
+
+ assertThat(string, equalTo("""
+ public Rectangle() {
+ }"""
+ ));
+ }
+
+ @Test
+ public void privateConstructor() throws IOException {
+ var java = new JavaConstructorDeclaration(
+ "Rectangle",
+ JavaVisibility.PRIVATE,
+ List.of(),
+ JavaBlock.EMPTY
+ );
+
+ var string = write(writer -> writer.writeClassBodyDeclaration(java));
+
+ assertThat(string, equalTo("""
+ private Rectangle() {
+ }"""
+ ));
+ }
+
+ @Test
+ public void constructorWithParams() throws IOException {
+ var java = new JavaConstructorDeclaration(
+ "Rectangle",
+ JavaVisibility.PUBLIC,
+ List.of(
+ new JavaParam(JavaTypeRef.INT, "b"),
+ new JavaParam(JavaTypeRef.LONG, "c")
+ ),
+ JavaBlock.EMPTY
+ );
+
+ var string = write(writer -> writer.writeClassBodyDeclaration(java));
+
+ assertThat(string, equalTo("""
+ public Rectangle(int b, long c) {
+ }"""
+ ));
+ }
+
+ @Test
+ public void constructorWithBody() throws IOException {
+ var java = new JavaConstructorDeclaration(
+ "Rectangle",
+ JavaVisibility.PUBLIC,
+ List.of(),
+ new JavaBlock(List.of(
+ new JavaReturn(new JavaIntegerLiteral(42))
+ ))
+ );
+
+ var string = write(writer -> writer.writeClassBodyDeclaration(java));
+
+ assertThat(string, equalTo("""
+ public Rectangle() {
+ return 42;
+ }"""
+ ));
+ }
+
+ @Test
public void block() throws IOException {
var java = new JavaBlock(List.of(
new JavaReturn(new JavaIntegerLiteral(42)),