diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-06-12 16:19:50 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-06-12 16:19:50 +0100 |
| commit | a1b78ec441aea70ae7494ca2b2925720d3f4ab3c (patch) | |
| tree | 86000814178b333ca8e15ed432c80d71e6b4bc01 /src/test/java/org/zwobble | |
| parent | 89b30c6837e0fc3021df5e1a33ba362d45760f00 (diff) | |
Add Java constructor
Diffstat (limited to 'src/test/java/org/zwobble')
| -rw-r--r-- | src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java | 91 |
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)), |
