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 org.eclipse.aether.graph.DependencyNode;
22 import org.eclipse.aether.graph.DependencyVisitor;
23 import org.eclipse.aether.internal.test.util.DependencyGraphParser;
24 import org.junit.jupiter.api.Test;
25
26 import static org.junit.jupiter.api.Assertions.*;
27
28 public class TreeDependencyVisitorTest {
29
30 private DependencyNode parse(String resource) throws Exception {
31 return new DependencyGraphParser("visitor/tree/").parseResource(resource);
32 }
33
34 @Test
35 void testDuplicateSuppression() throws Exception {
36 DependencyNode root = parse("cycles.txt");
37
38 RecordingVisitor rec = new RecordingVisitor();
39 TreeDependencyVisitor visitor = new TreeDependencyVisitor(rec);
40 root.accept(visitor);
41
42 assertEquals(">a >b >c <c <b >d <d <a ", rec.buffer.toString());
43 }
44
45 private static class RecordingVisitor implements DependencyVisitor {
46
47 StringBuilder buffer = new StringBuilder(256);
48
49 public boolean visitEnter(DependencyNode node) {
50 buffer.append('>')
51 .append(node.getDependency().getArtifact().getArtifactId())
52 .append(' ');
53 return true;
54 }
55
56 public boolean visitLeave(DependencyNode node) {
57 buffer.append('<')
58 .append(node.getDependency().getArtifact().getArtifactId())
59 .append(' ');
60 return true;
61 }
62 }
63 }