diff options
Diffstat (limited to 'src/test/java/org/zwobble')
| -rw-r--r-- | src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java | 44 |
1 files changed, 44 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 2006b50..a53b20f 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 @@ -98,6 +98,7 @@ public class JavaWriterTests { var java = new JavaInterfaceDeclaration( "Shape", List.of(), + List.of(), new JavaCustomArea(JavaTypeRef.topLevel(List.of(), "Shape"), "body"), DocComment.EMPTY ); @@ -120,6 +121,7 @@ public class JavaWriterTests { JavaTypeRef.topLevel(List.of("abc", "def"), "One"), JavaTypeRef.topLevel(List.of("abc", "def"), "Two") ), + List.of(), new JavaCustomArea(JavaTypeRef.topLevel(List.of(), "Shape"), "body"), DocComment.EMPTY ); @@ -139,6 +141,7 @@ public class JavaWriterTests { var java = new JavaInterfaceDeclaration( "Shape", List.of(), + List.of(), new JavaCustomArea(JavaTypeRef.topLevel(List.of(), "Shape"), "body"), new DocComment("A 2D shape.") ); @@ -155,6 +158,47 @@ public class JavaWriterTests { } @Test + public void interfaceDeclarationWithBody() throws IOException { + var java = new JavaInterfaceDeclaration( + "Shape", + List.of(), + List.of( + new JavaMethodDeclaration( + "a", + JavaMethodKind.STATIC, + JavaTypeRef.VOID, + List.of(), + JavaBlock.EMPTY + ), + new JavaMethodDeclaration( + "b", + JavaMethodKind.STATIC, + JavaTypeRef.VOID, + List.of(), + JavaBlock.EMPTY + ) + ), + new JavaCustomArea(JavaTypeRef.topLevel(List.of(), "Shape"), "body"), + DocComment.EMPTY + ); + + var string = write(writer -> writer.writeTypeDeclaration(java)); + + assertThat(string, equalTo(""" + public sealed interface Shape { + public static void a() { + } + + public static void b() { + } + + // Custom area start: Shape body + // Custom area end: Shape body + }""" + )); + } + + @Test public void emptyRecordDeclaration() throws IOException { var java = new JavaRecordDeclaration( "Point", |
