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