1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.util.graph.visitor;
20
21 import java.util.List;
22
23 import org.eclipse.aether.graph.DependencyNode;
24 import org.eclipse.aether.internal.test.util.DependencyGraphParser;
25 import org.junit.jupiter.api.Test;
26
27 import static org.junit.jupiter.api.Assertions.*;
28
29 public class NodeListGeneratorTest {
30
31 private DependencyNode parse(String resource) throws Exception {
32 return new DependencyGraphParser("visitor/ordered-list/").parseResource(resource);
33 }
34
35 private void assertSequence(List<DependencyNode> actual, String... expected) {
36 assertEquals(expected.length, actual.size(), actual.toString());
37 for (int i = 0; i < expected.length; i++) {
38 DependencyNode node = actual.get(i);
39 assertEquals(expected[i], node.getDependency().getArtifact().getArtifactId(), actual.toString());
40 }
41 }
42
43 @Test
44 void testPreOrder() throws Exception {
45 DependencyNode root = parse("simple.txt");
46
47 NodeListGenerator nodeListGenerator = new NodeListGenerator();
48 PreorderDependencyNodeConsumerVisitor visitor = new PreorderDependencyNodeConsumerVisitor(nodeListGenerator);
49 root.accept(visitor);
50
51 assertSequence(nodeListGenerator.getNodes(), "a", "b", "c", "d", "e");
52 }
53
54 @Test
55 void testPreOrderDuplicateSuppression() throws Exception {
56 DependencyNode root = parse("cycles.txt");
57
58 NodeListGenerator nodeListGenerator = new NodeListGenerator();
59 PreorderDependencyNodeConsumerVisitor visitor = new PreorderDependencyNodeConsumerVisitor(nodeListGenerator);
60 root.accept(visitor);
61
62 assertSequence(nodeListGenerator.getNodes(), "a", "b", "c", "d", "e");
63 }
64
65 @Test
66 void testPostOrder() throws Exception {
67 DependencyNode root = parse("simple.txt");
68
69 NodeListGenerator nodeListGenerator = new NodeListGenerator();
70 PostorderDependencyNodeConsumerVisitor visitor = new PostorderDependencyNodeConsumerVisitor(nodeListGenerator);
71 root.accept(visitor);
72
73 assertSequence(nodeListGenerator.getNodes(), "c", "b", "e", "d", "a");
74 }
75
76 @Test
77 void testPostOrderDuplicateSuppression() throws Exception {
78 DependencyNode root = parse("cycles.txt");
79
80 NodeListGenerator nodeListGenerator = new NodeListGenerator();
81 PostorderDependencyNodeConsumerVisitor visitor = new PostorderDependencyNodeConsumerVisitor(nodeListGenerator);
82 root.accept(visitor);
83
84 assertSequence(nodeListGenerator.getNodes(), "c", "b", "e", "d", "a");
85 }
86
87 @Test
88 void testLevelOrder() throws Exception {
89 DependencyNode root = parse("simple.txt");
90
91 NodeListGenerator nodeListGenerator = new NodeListGenerator();
92 LevelOrderDependencyNodeConsumerVisitor visitor =
93 new LevelOrderDependencyNodeConsumerVisitor(nodeListGenerator);
94 root.accept(visitor);
95
96 assertSequence(nodeListGenerator.getNodes(), "a", "b", "d", "c", "e");
97 }
98
99 @Test
100 void testLevelOrderDuplicateSuppression() throws Exception {
101 DependencyNode root = parse("cycles.txt");
102
103 NodeListGenerator nodeListGenerator = new NodeListGenerator();
104 LevelOrderDependencyNodeConsumerVisitor visitor =
105 new LevelOrderDependencyNodeConsumerVisitor(nodeListGenerator);
106 root.accept(visitor);
107
108 assertSequence(nodeListGenerator.getNodes(), "a", "b", "d", "c", "e");
109 }
110 }