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.plugin.testing.ArtifactStubFactory;
34 import org.codehaus.plexus.util.FileUtils;
35
36
37
38
39 public class TestFilterArtifacts
40 extends TestCase
41 {
42
43 protected void setUp()
44 throws Exception
45 {
46 super.setUp();
47 }
48
49 public void testNullFilters()
50 throws IOException, ArtifactFilterException
51
52 {
53
54
55 File outputFolder = new File( "target/filters/" );
56
57 FileUtils.deleteDirectory( outputFolder );
58
59 ArtifactStubFactory fact = new ArtifactStubFactory( outputFolder, false );
60 Set artifacts = fact.getReleaseAndSnapshotArtifacts();
61 FilterArtifacts fa = new FilterArtifacts();
62
63 fa.filter( artifacts );
64
65
66 fa.addFilter( null );
67
68 fa.filter( artifacts );
69 assertEquals( 0, fa.getFilters().size() );
70
71 ArrayList filters = new ArrayList();
72 filters.add( null );
73 filters.add( null );
74 fa.setFilters( filters );
75
76 assertEquals( 2, fa.getFilters().size() );
77
78 fa.filter( artifacts );
79 }
80
81 public void testArtifactFilter()
82 {
83 Set a = new HashSet();
84 FilterArtifacts fa = new FilterArtifacts();
85 ArtifactsFilter scope = new ScopeFilter( "compile", "system" );
86 ArtifactsFilter type = new TypeFilter( "jar", "war" );
87 ArtifactsFilter trans = new ProjectTransitivityFilter( a, true );
88
89 assertEquals( 0, fa.getFilters().size() );
90 fa.addFilter( scope );
91 assertEquals( 1, fa.getFilters().size() );
92 fa.addFilter( type );
93 assertEquals( 2, fa.getFilters().size() );
94 assertTrue( fa.getFilters().get( 0 ) instanceof ScopeFilter );
95 assertTrue( fa.getFilters().get( 1 ) instanceof TypeFilter );
96 fa.addFilter( 1, trans );
97 assertEquals( 3, fa.getFilters().size() );
98 assertTrue( fa.getFilters().get( 0 ) instanceof ScopeFilter );
99 assertTrue( fa.getFilters().get( 1 ) instanceof ProjectTransitivityFilter );
100 assertTrue( fa.getFilters().get( 2 ) instanceof TypeFilter );
101
102 ArrayList list = new ArrayList();
103 list.addAll( fa.getFilters() );
104
105 fa.clearFilters();
106 assertEquals( 0, fa.getFilters().size() );
107
108 fa.setFilters( list );
109 assertEquals( 3, fa.getFilters().size() );
110 assertTrue( fa.getFilters().get( 0 ) instanceof ScopeFilter );
111 assertTrue( fa.getFilters().get( 1 ) instanceof ProjectTransitivityFilter );
112 assertTrue( fa.getFilters().get( 2 ) instanceof TypeFilter );
113
114 }
115
116 public void testArtifactFilterWithClassifier() throws IOException, ArtifactFilterException
117 {
118 File outputFolder = new File( "target/filters/" );
119 FileUtils.deleteDirectory( outputFolder );
120 ArtifactStubFactory fact = new ArtifactStubFactory( outputFolder, false );
121 Set artifacts = fact.getClassifiedArtifacts();
122 FilterArtifacts fa = new FilterArtifacts();
123 fa.addFilter( new ClassifierFilter( "", "four" ) );
124 Set results = fa.filter( artifacts );
125 assertEquals( 3, results.size() );
126 fa.addFilter( new ClassifierFilter( "two,three", "" ) );
127 results = fa.filter( artifacts );
128 assertEquals( 2, results.size() );
129 }
130
131 }