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.Test;
26
27 import static org.junit.Assert.*;
28
29 public class PreorderNodeListGeneratorTest {
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(actual.toString(), expected.length, actual.size());
37 for (int i = 0; i < expected.length; i++) {
38 DependencyNode node = actual.get(i);
39 assertEquals(
40 actual.toString(),
41 expected[i],
42 node.getDependency().getArtifact().getArtifactId());
43 }
44 }
45
46 @Test
47 public void testOrdering() throws Exception {
48 DependencyNode root = parse("simple.txt");
49
50 PreorderNodeListGenerator visitor = new PreorderNodeListGenerator();
51 root.accept(visitor);
52
53 assertSequence(visitor.getNodes(), "a", "b", "c", "d", "e");
54 }
55
56 @Test
57 public void testDuplicateSuppression() throws Exception {
58 DependencyNode root = parse("cycles.txt");
59
60 PreorderNodeListGenerator visitor = new PreorderNodeListGenerator();
61 root.accept(visitor);
62
63 assertSequence(visitor.getNodes(), "a", "b", "c", "d", "e");
64 }
65 }