View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
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.Path;
24  
25  import org.apache.maven.buildcache.its.junit.IntegrationTest;
26  import org.apache.maven.it.VerificationException;
27  import org.apache.maven.it.Verifier;
28  import org.junit.jupiter.api.Assertions;
29  import org.junit.jupiter.api.Test;
30  
31  import static org.apache.maven.buildcache.util.LogFileUtils.findFirstLineContainingTextsInLogs;
32  import static org.apache.maven.buildcache.xml.CacheConfigImpl.CACHE_LOCATION_PROPERTY_NAME;
33  import static org.apache.maven.buildcache.xml.CacheConfigImpl.SKIP_SAVE;
34  
35  @IntegrationTest("src/test/projects/build-extension")
36  public class BuildExtensionTest {
37  
38      private static final String PROJECT_NAME = "org.apache.maven.caching.test.simple:simple";
39  
40      @Test
41      void simple(Verifier verifier) throws VerificationException {
42          verifier.setAutoclean(false);
43  
44          verifier.setLogFileName("../log-1.txt");
45          verifier.executeGoal("verify");
46          verifier.verifyErrorFreeLog();
47  
48          verifier.setLogFileName("../log-2.txt");
49          verifier.executeGoal("verify");
50          verifier.verifyErrorFreeLog();
51          verifier.verifyTextInLog("Found cached build, restoring " + PROJECT_NAME + " from cache");
52      }
53  
54      @Test
55      void skipSaving(Verifier verifier) throws VerificationException, IOException {
56          verifier.setAutoclean(false);
57          Path tempDirectory = Files.createTempDirectory("skip-saving-test");
58          verifier.getCliOptions().clear();
59          verifier.addCliOption("-D" + CACHE_LOCATION_PROPERTY_NAME + "=" + tempDirectory.toAbsolutePath());
60          verifier.addCliOption("-D" + SKIP_SAVE + "=true");
61  
62          verifier.setLogFileName("../log-1.txt");
63          verifier.executeGoal("verify");
64          verifier.verifyTextInLog("Cache saving is disabled.");
65          verifier.verifyErrorFreeLog();
66  
67          verifier.setLogFileName("../log-2.txt");
68          verifier.executeGoal("verify");
69          verifier.verifyErrorFreeLog();
70          verifier.verifyTextInLog("Cache saving is disabled.");
71          verifyNoTextInLog(verifier, "Found cached build, restoring");
72      }
73  
74      private static void verifyNoTextInLog(Verifier verifier, String text) throws VerificationException {
75          Assertions.assertNull(findFirstLineContainingTextsInLogs(verifier, text));
76      }
77  }