From 60a89e424f6ad477ecc89760407d6999c5ee8d48 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 20 Jun 2026 10:32:54 +0100 Subject: Handle subnamespaces when mapping namespaces to Java packages --- .../output/lang/java/JavaGeneratorTests.java | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'src/test/java/org') 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 index 9cbd5d9..d7c3eeb 100644 --- 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 @@ -28,7 +28,7 @@ public class JavaGeneratorTests { } @Test - public void explicitJavaPackageIsUsedForNamespaceWhenAvailable() { + public void explicitJavaPackageIsUsedForNamespaceWhenExactNamespaceHasMapping() { var config = new JavaGeneratorConfig( List.of("com", "example"), Map.ofEntries( @@ -45,4 +45,23 @@ public class JavaGeneratorTests { assertThat(result, equalTo(List.of("com", "other"))); } + + @Test + public void explicitJavaPackageIsUsedForNamespaceWhenAncestorNamespaceHasMapping() { + 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", "c", "d")); + + assertThat(result, equalTo(List.of("com", "other", "c", "d"))); + } } -- cgit v1.2.3