diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaGeneratorTests.java | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaGeneratorTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaGeneratorTests.java new file mode 100644 index 0000000..9cbd5d9 --- /dev/null +++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaGeneratorTests.java @@ -0,0 +1,48 @@ +package org.zwobble.hobgoblin.compiler.output.lang.java; + +import org.junit.jupiter.api.Test; +import org.zwobble.hobgoblin.compiler.output.generators.java.JavaGenerator; +import org.zwobble.hobgoblin.compiler.output.generators.java.JavaGeneratorConfig; +import org.zwobble.hobgoblin.compiler.output.generators.java.JavaNamespaceConfig; +import org.zwobble.hobgoblin.compiler.types.NamespaceName; + +import java.util.List; +import java.util.Map; + +import static org.zwobble.precisely.AssertThat.assertThat; +import static org.zwobble.precisely.Matchers.equalTo; + +public class JavaGeneratorTests { + @Test + public void defaultJavaPackageIsUsedForNamespacesWithoutExplicitMapping() { + var config = new JavaGeneratorConfig( + List.of("com", "example"), + Map.of(), + Map.of() + ); + var generator = new JavaGenerator(config); + + var result = generator.namespaceToJavaPackageParts(NamespaceName.of("a", "b")); + + assertThat(result, equalTo(List.of("com", "example", "a", "b"))); + } + + @Test + public void explicitJavaPackageIsUsedForNamespaceWhenAvailable() { + var config = new JavaGeneratorConfig( + List.of("com", "example"), + Map.ofEntries( + Map.entry( + NamespaceName.of("a", "b"), + new JavaNamespaceConfig(List.of("com", "other")) + ) + ), + Map.of() + ); + var generator = new JavaGenerator(config); + + var result = generator.namespaceToJavaPackageParts(NamespaceName.of("a", "b")); + + assertThat(result, equalTo(List.of("com", "other"))); + } +} |
