1 package org.eclipse.aether.util.graph.visitor;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import static org.junit.Assert.*;
23
24 import java.util.List;
25
26 import org.eclipse.aether.graph.DependencyNode;
27 import org.eclipse.aether.internal.test.util.DependencyGraphParser;
28 import org.junit.Test;
29
30 public class PostorderNodeListGeneratorTest
31 {
32
33 private DependencyNode parse( String resource )
34 throws Exception
35 {
36 return new DependencyGraphParser( "visitor/ordered-list/" ).parseResource( resource );
37 }
38
39 private void assertSequence( List<DependencyNode> actual, String... expected )
40 {
41 assertEquals( actual.toString(), expected.length, actual.size() );
42 for ( int i = 0; i < expected.length; i++ )
43 {
44 DependencyNode node = actual.get( i );
45 assertEquals( actual.toString(), expected[i], node.getDependency().getArtifact().getArtifactId() );
46 }
47 }
48
49 @Test
50 public void testOrdering()
51 throws Exception
52 {
53 DependencyNode root = parse( "simple.txt" );
54
55 PostorderNodeListGenerator visitor = new PostorderNodeListGenerator();
56 root.accept( visitor );
57
58 assertSequence( visitor.getNodes(), "c", "b", "e", "d", "a" );
59 }
60
61 @Test
62 public void testDuplicateSuppression()
63 throws Exception
64 {
65 DependencyNode root = parse( "cycles.txt" );
66
67 PostorderNodeListGenerator visitor = new PostorderNodeListGenerator();
68 root.accept( visitor );
69
70 assertSequence( visitor.getNodes(), "c", "b", "e", "d", "a" );
71 }
72
73 }