diff options
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/typechecker/NamespaceDependencyLineariserTests.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/typechecker/NamespaceDependencyLineariserTests.java b/src/test/java/org/shedlang/compiler/typechecker/NamespaceDependencyLineariserTests.java index 0492ce5d..bf2e9816 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/NamespaceDependencyLineariserTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/NamespaceDependencyLineariserTests.java @@ -56,6 +56,27 @@ public class NamespaceDependencyLineariserTests { } @Test + public void namespaceCanBeDependedOnMultipleTimes() { + var namespaces = List.of( + namespaceNode("A", List.of("Z")), + namespaceNode("B", List.of("Z")), + namespaceNode("Z", List.of()), + namespaceNode("C", List.of("Z")), + namespaceNode("D", List.of("Z")) + ); + + var result = NamespaceDependencyLineariser.orderNamespaces(namespaces); + + assertThat(result, isSequence( + isNamespaceNode("Z"), + isNamespaceNode("A"), + isNamespaceNode("B"), + isNamespaceNode("C"), + isNamespaceNode("D") + )); + } + + @Test public void whenNamespaceDirectlyDependsOnItselfThenErrorIsThrown() { var namespaces = List.of( namespaceNode("A", List.of("A")) |
