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.DependencyFilter;
24 import org.eclipse.aether.graph.DependencyNode;
25 import org.eclipse.aether.internal.test.util.DependencyGraphParser;
26 import org.junit.Test;
27
28 import static java.util.Objects.requireNonNull;
29 import static org.junit.Assert.*;
30
31 public class FilteringDependencyVisitorTest {
32
33 private DependencyNode parse(String resource) throws Exception {
34 return new DependencyGraphParser("visitor/filtering/").parseResource(resource);
35 }
36
37 @Test
38 public void testFilterCalledWithProperParentStack() throws Exception {
39 DependencyNode root = parse("parents.txt");
40
41 final StringBuilder buffer = new StringBuilder(256);
42 DependencyFilter filter = new DependencyFilter() {
43 public boolean accept(DependencyNode node, List<DependencyNode> parents) {
44 requireNonNull(node, "node cannot be null");
45 requireNonNull(parents, "parents cannot be null");
46 for (DependencyNode parent : parents) {
47 buffer.append(parent.getDependency().getArtifact().getArtifactId());
48 }
49 buffer.append(",");
50 return false;
51 }
52 };
53
54 FilteringDependencyVisitor visitor = new FilteringDependencyVisitor(new PreorderNodeListGenerator(), filter);
55 root.accept(visitor);
56
57 assertEquals(",a,ba,cba,a,ea,", buffer.toString());
58 }
59 }