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