1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.shared.artifact.filter.collection;
20
21 import java.io.File;
22 import java.io.IOException;
23 import java.util.ArrayList;
24 import java.util.HashSet;
25 import java.util.Set;
26
27 import org.apache.commons.io.FileUtils;
28 import org.apache.maven.artifact.Artifact;
29 import org.apache.maven.plugin.testing.ArtifactStubFactory;
30 import org.junit.Test;
31
32 import static org.junit.Assert.assertEquals;
33 import static org.junit.Assert.assertTrue;
34
35
36
37
38 public class TestFilterArtifacts {
39 @Test
40 public void testNullFilters() throws IOException, ArtifactFilterException {
41
42
43
44 File outputFolder = new File("target/filters/");
45
46 FileUtils.deleteDirectory(outputFolder);
47
48 ArtifactStubFactory fact = new ArtifactStubFactory(outputFolder, false);
49
50 Set<Artifact> artifacts = fact.getReleaseAndSnapshotArtifacts();
51 FilterArtifacts fa = new FilterArtifacts();
52
53 fa.filter(artifacts);
54
55
56 fa.addFilter(null);
57
58 fa.filter(artifacts);
59 assertEquals(0, fa.getFilters().size());
60
61 ArrayList<ArtifactsFilter> filters = new ArrayList<>();
62 filters.add(null);
63 filters.add(null);
64 fa.setFilters(filters);
65
66 assertEquals(2, fa.getFilters().size());
67
68 fa.filter(artifacts);
69 }
70
71 @Test
72 public void testArtifactFilter() {
73 Set<Artifact> a = new HashSet<>();
74 FilterArtifacts fa = new FilterArtifacts();
75 ArtifactsFilter scope = new ScopeFilter("compile", "system");
76 ArtifactsFilter type = new TypeFilter("jar", "war");
77 ArtifactsFilter trans = new ProjectTransitivityFilter(a, true);
78
79 assertEquals(0, fa.getFilters().size());
80 fa.addFilter(scope);
81 assertEquals(1, fa.getFilters().size());
82 fa.addFilter(type);
83 assertEquals(2, fa.getFilters().size());
84 assertTrue(fa.getFilters().get(0) instanceof ScopeFilter);
85 assertTrue(fa.getFilters().get(1) instanceof TypeFilter);
86 fa.addFilter(1, trans);
87 assertEquals(3, fa.getFilters().size());
88 assertTrue(fa.getFilters().get(0) instanceof ScopeFilter);
89 assertTrue(fa.getFilters().get(1) instanceof ProjectTransitivityFilter);
90 assertTrue(fa.getFilters().get(2) instanceof TypeFilter);
91
92 ArrayList<ArtifactsFilter> list = new ArrayList<>(fa.getFilters());
93
94 fa.clearFilters();
95 assertEquals(0, fa.getFilters().size());
96
97 fa.setFilters(list);
98 assertEquals(3, fa.getFilters().size());
99 assertTrue(fa.getFilters().get(0) instanceof ScopeFilter);
100 assertTrue(fa.getFilters().get(1) instanceof ProjectTransitivityFilter);
101 assertTrue(fa.getFilters().get(2) instanceof TypeFilter);
102 }
103
104 @Test
105 public void testArtifactFilterWithClassifier() throws IOException, ArtifactFilterException {
106 File outputFolder = new File("target/filters/");
107 FileUtils.deleteDirectory(outputFolder);
108 ArtifactStubFactory fact = new ArtifactStubFactory(outputFolder, false);
109
110 Set<Artifact> artifacts = fact.getClassifiedArtifacts();
111 FilterArtifacts fa = new FilterArtifacts();
112 fa.addFilter(new ClassifierFilter("", "four"));
113 Set<Artifact> results = fa.filter(artifacts);
114 assertEquals(3, results.size());
115 fa.addFilter(new ClassifierFilter("two,three", ""));
116 results = fa.filter(artifacts);
117 assertEquals(2, results.size());
118 }
119 }