1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.buildcache.its;
20
21 import java.io.IOException;
22 import java.nio.file.Files;
23 import java.nio.file.Paths;
24 import java.util.List;
25
26 import org.apache.commons.lang3.SystemUtils;
27 import org.apache.maven.buildcache.its.junit.IntegrationTest;
28 import org.apache.maven.it.VerificationException;
29 import org.apache.maven.it.Verifier;
30 import org.junit.jupiter.api.Test;
31
32 import static java.util.Arrays.asList;
33 import static org.junit.jupiter.api.Assumptions.assumeFalse;
34
35 @IntegrationTest("src/test/projects/mbuildcache-367")
36 class Issue367Test {
37
38 private static final String PROJECT_NAME = "org.apache.maven.caching.test:mbuildcache-367";
39
40 @Test
41 void fileOutsideInputDirectoryMatchingProjectLevelGlobPatternShouldNotInvalidateCache(Verifier verifier)
42 throws VerificationException, IOException {
43 assumeFalse(SystemUtils.IS_OS_WINDOWS);
44
45 verifier.setAutoclean(false);
46
47 verifier.setLogFileName("../log-0.txt");
48 verifier.executeGoals(asList("package"));
49 verifier.verifyErrorFreeLog();
50 verifier.verifyTextInLog("Local build was not found");
51 verifyTextNotInLog(verifier, "Found cached build");
52
53 verifier.setLogFileName("../log-1.txt");
54 verifier.executeGoals(asList("package"));
55 verifier.verifyErrorFreeLog();
56 verifier.verifyTextInLog("Found cached build");
57 verifyTextNotInLog(verifier, "Local build was not found");
58
59 Files.copy(
60 Paths.get(verifier.getBasedir(), "src/main/custom-resources/input/test.properties"),
61 Paths.get(verifier.getBasedir(), "{*.properties}"));
62
63 verifier.setLogFileName("../log-2.txt");
64 verifier.executeGoals(asList("package"));
65 verifier.verifyErrorFreeLog();
66 verifier.verifyTextInLog("Found cached build");
67 verifyTextNotInLog(verifier, "Local build was not found");
68 }
69
70 private static void verifyTextNotInLog(Verifier verifier, String text) throws VerificationException {
71 List<String> lines = verifier.loadFile(verifier.getBasedir(), verifier.getLogFileName(), false);
72 for (String line : lines) {
73 if (Verifier.stripAnsi(line).contains(text)) {
74 throw new VerificationException("Text found in log: " + text);
75 }
76 }
77 }
78 }