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