1919package org .eclipse .aether .util .graph .visitor ;
2020
2121import java .io .File ;
22+ import java .nio .file .Path ;
2223import java .util .Arrays ;
2324import java .util .HashSet ;
2425import java .util .List ;
@@ -104,6 +105,30 @@ void testLevelOrder() throws Exception {
104105 assertSequence (nodeListGenerator .getNodes (), "a" , "b" , "d" , "c" , "e" );
105106 }
106107
108+ @ Test
109+ void testLevelOrderWithFilterDirect () throws Exception {
110+ DependencyNode root = parse ("simple.txt" );
111+
112+ NodeListGenerator nodeListGenerator = new NodeListGenerator ();
113+ LevelOrderDependencyNodeConsumerVisitor visitor =
114+ new LevelOrderDependencyNodeConsumerVisitor (nodeListGenerator , (n , p ) -> p .size () <= 1 );
115+ root .accept (visitor );
116+
117+ assertSequence (nodeListGenerator .getNodes (), "a" , "b" , "d" );
118+ }
119+
120+ @ Test
121+ void testLevelOrderWithFilterIndirect () throws Exception {
122+ DependencyNode root = parse ("simple.txt" );
123+
124+ NodeListGenerator nodeListGenerator = new NodeListGenerator ();
125+ LevelOrderDependencyNodeConsumerVisitor visitor =
126+ new LevelOrderDependencyNodeConsumerVisitor (nodeListGenerator , (n , p ) -> p .size () <= 2 );
127+ root .accept (visitor );
128+
129+ assertSequence (nodeListGenerator .getNodes (), "a" , "b" , "d" , "c" , "e" );
130+ }
131+
107132 @ Test
108133 void testLevelOrderDuplicateSuppression () throws Exception {
109134 DependencyNode root = parse ("cycles.txt" );
@@ -130,7 +155,7 @@ void testEmptyResolvedClassPath() throws Exception {
130155 assertEquals (5 , nodeListGenerator .getDependencies (true ).size ());
131156 assertEquals (0 , nodeListGenerator .getArtifacts (false ).size ());
132157 assertEquals (5 , nodeListGenerator .getArtifacts (true ).size ());
133- assertEquals (0 , nodeListGenerator .getFiles ().size ());
158+ assertEquals (0 , nodeListGenerator .getPaths ().size ());
134159 assertEquals ("" , nodeListGenerator .getClassPath ());
135160 }
136161
@@ -141,7 +166,7 @@ void testFullyResolvedClassPath() throws Exception {
141166 @ Override
142167 public boolean visitEnter (DependencyNode node ) {
143168 node .setArtifact (node .getArtifact ()
144- .setFile (new File (node .getDependency ().getArtifact ().getArtifactId ())));
169+ .setPath (new File (node .getDependency ().getArtifact ().getArtifactId ()). toPath ( )));
145170 return true ;
146171 }
147172
@@ -158,9 +183,9 @@ public boolean visitLeave(DependencyNode node) {
158183 root .accept (visitor );
159184
160185 Set <String > fileNames = nodeListGenerator .getNodes ().stream ()
161- .map (n -> n .getArtifact ().getFile ())
186+ .map (n -> n .getArtifact ().getPath ())
162187 .filter (Objects ::nonNull )
163- .map (File :: getName )
188+ .map (Path :: toString )
164189 .collect (Collectors .toSet ());
165190 String classPath = nodeListGenerator .getClassPath ();
166191 String [] splitClassPath = classPath .split (File .pathSeparator );
@@ -172,7 +197,7 @@ public boolean visitLeave(DependencyNode node) {
172197 assertEquals (5 , nodeListGenerator .getDependencies (true ).size ());
173198 assertEquals (5 , nodeListGenerator .getArtifacts (false ).size ());
174199 assertEquals (5 , nodeListGenerator .getArtifacts (true ).size ());
175- assertEquals (5 , nodeListGenerator .getFiles ().size ());
200+ assertEquals (5 , nodeListGenerator .getPaths ().size ());
176201 assertEquals (fileNames , classPathNames );
177202 }
178203
@@ -188,7 +213,7 @@ public boolean visitEnter(DependencyNode node) {
188213 if (alternator .get ()) {
189214 String fileName = node .getDependency ().getArtifact ().getArtifactId ();
190215 fileNames .add (fileName );
191- node .setArtifact (node .getArtifact ().setFile (new File (fileName )));
216+ node .setArtifact (node .getArtifact ().setPath (new File (fileName ). toPath ( )));
192217 }
193218 return true ;
194219 }
@@ -215,7 +240,7 @@ public boolean visitLeave(DependencyNode node) {
215240 assertEquals (5 , nodeListGenerator .getDependencies (true ).size ());
216241 assertEquals (3 , nodeListGenerator .getArtifacts (false ).size ());
217242 assertEquals (5 , nodeListGenerator .getArtifacts (true ).size ());
218- assertEquals (3 , nodeListGenerator .getFiles ().size ());
243+ assertEquals (3 , nodeListGenerator .getPaths ().size ());
219244 assertEquals (fileNames , classPathNames );
220245 }
221246
0 commit comments