1 package org.apache.maven.plugin.dependency.utils.filters;
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.HashSet;
28 import java.util.Set;
29
30 import junit.framework.TestCase;
31
32 import org.apache.maven.artifact.Artifact;
33 import org.apache.maven.plugin.MojoExecutionException;
34 import org.apache.maven.plugin.dependency.testUtils.DependencyArtifactStubFactory;
35 import org.apache.maven.plugin.dependency.testUtils.DependencyTestUtils;
36 import org.apache.maven.plugin.dependency.utils.markers.DefaultFileMarkerHandler;
37 import org.apache.maven.plugin.logging.Log;
38 import org.apache.maven.plugin.testing.SilentLog;
39 import org.apache.maven.shared.artifact.filter.collection.ArtifactFilterException;
40
41
42
43
44
45 public class TestMarkerFileFilter
46 extends TestCase
47 {
48 Set artifacts = new HashSet();
49
50 Log log = new SilentLog();
51
52 File outputFolder;
53
54 DependencyArtifactStubFactory fact;
55
56 protected void setUp()
57 throws Exception
58 {
59 super.setUp();
60
61 outputFolder = new File( "target/markers/" );
62 DependencyTestUtils.removeDirectory( outputFolder );
63 assertFalse( outputFolder.exists() );
64
65 this.fact = new DependencyArtifactStubFactory( outputFolder, false );
66 artifacts = fact.getReleaseAndSnapshotArtifacts();
67 }
68
69 protected void tearDown()
70 throws IOException
71 {
72 DependencyTestUtils.removeDirectory( outputFolder );
73 }
74
75 public void testMarkerFile() throws ArtifactFilterException
76
77 {
78 MarkerFileFilter filter = new MarkerFileFilter( true, true, false, new DefaultFileMarkerHandler( outputFolder ) );
79 Set result = filter.filter( artifacts );
80 assertEquals( 2, result.size() );
81
82 filter.setOverWriteReleases( false );
83 filter.setOverWriteSnapshots( false );
84 result = filter.filter( artifacts );
85 assertEquals( 2, result.size() );
86 }
87
88 public void testMarkerSnapshots() throws ArtifactFilterException, MojoExecutionException, IOException
89
90 {
91 DefaultFileMarkerHandler handler = new DefaultFileMarkerHandler( fact.getSnapshotArtifact(), outputFolder );
92 handler.setMarker();
93
94 MarkerFileFilter filter = new MarkerFileFilter( true, false, false, new DefaultFileMarkerHandler( outputFolder ) );
95 Set result = filter.filter( artifacts );
96 assertEquals( 1, result.size() );
97
98 filter.setOverWriteSnapshots( true );
99 result = filter.filter( artifacts );
100 assertEquals( 2, result.size() );
101 assertTrue( handler.clearMarker() );
102 DependencyTestUtils.removeDirectory( outputFolder );
103 assertFalse( outputFolder.exists() );
104 }
105
106 public void testMarkerRelease()
107 throws IOException, ArtifactFilterException, MojoExecutionException
108 {
109 DefaultFileMarkerHandler handler = new DefaultFileMarkerHandler( fact.getReleaseArtifact(), outputFolder );
110 handler.setMarker();
111
112 MarkerFileFilter filter = new MarkerFileFilter( false, false, false,
113 new DefaultFileMarkerHandler( outputFolder ) );
114 Set result = filter.filter( artifacts);
115 assertEquals( 1, result.size() );
116
117 filter.setOverWriteReleases( true );
118 result = filter.filter( artifacts);
119 assertEquals( 2, result.size() );
120
121 assertTrue( handler.clearMarker() );
122 DependencyTestUtils.removeDirectory( outputFolder );
123 assertFalse( outputFolder.exists() );
124 }
125
126 public void testMarkerTimestamp()
127 throws IOException, MojoExecutionException, ArtifactFilterException
128 {
129 DependencyArtifactStubFactory fileFact = new DependencyArtifactStubFactory( outputFolder, true );
130 Artifact snap = fileFact.getSnapshotArtifact();
131 Artifact release = fileFact.getReleaseArtifact();
132 HashSet tempArtifacts = new HashSet();
133 tempArtifacts.add( snap );
134 tempArtifacts.add( release );
135 snap.getFile().setLastModified( snap.getFile().lastModified() + 1500 );
136 DefaultFileMarkerHandler handler = new DefaultFileMarkerHandler( snap, outputFolder );
137 handler.setMarker();
138 MarkerFileFilter filter = new MarkerFileFilter( false, false, true, new DefaultFileMarkerHandler( outputFolder ) );
139 Set result = filter.filter( tempArtifacts);
140 assertEquals( 2, result.size() );
141
142 snap.getFile().setLastModified( snap.getFile().lastModified() - 10000 );
143
144 result = filter.filter( tempArtifacts );
145 assertEquals( 1, result.size() );
146
147 assertTrue( handler.clearMarker() );
148 assertFalse( handler.isMarkerSet() );
149 snap.getFile().delete();
150 release.getFile().delete();
151 DependencyTestUtils.removeDirectory( outputFolder );
152 assertFalse( outputFolder.exists() );
153 }
154
155 public void testGettersSetters()
156 {
157 MarkerFileFilter filter = new MarkerFileFilter( true, false, true, new DefaultFileMarkerHandler( outputFolder ) );
158 assertEquals( true, filter.isOverWriteReleases() );
159 assertEquals( false, filter.isOverWriteSnapshots() );
160 assertEquals( true, filter.isOverWriteIfNewer() );
161
162 filter.setOverWriteReleases( false );
163 filter.setOverWriteSnapshots( true );
164 filter.setOverWriteIfNewer( false );
165
166 assertEquals( false, filter.isOverWriteReleases() );
167 assertEquals( true, filter.isOverWriteSnapshots() );
168 assertEquals( false, filter.isOverWriteIfNewer() );
169
170 }
171
172 }