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.plugins.gpg.it;
20  
21  import java.io.File;
22  
23  import org.apache.maven.shared.invoker.InvocationRequest;
24  import org.apache.maven.shared.invoker.InvocationResult;
25  import org.codehaus.plexus.util.FileUtils;
26  import org.junit.jupiter.api.Test;
27  
28  import static org.junit.jupiter.api.Assertions.assertNotEquals;
29  import static org.junit.jupiter.api.Assertions.assertTrue;
30  
31  public class GpgSignAttachedMojoIT extends ITSupport {
32      @Test
33      void testInteractiveWithoutPassphrase() throws Exception {
34          // given
35          final File pomFile =
36                  InvokerTestUtils.getTestResource("/it/sign-release-without-passphrase-interactive/pom.xml");
37          final InvocationRequest request =
38                  InvokerTestUtils.createRequest(pomFile, mavenUserSettings, gpgHome, "gpg", false);
39  
40          // require Maven interactive mode
41          request.setBatchMode(false);
42  
43          // when
44          final BuildResult result = InvokerTestUtils.executeRequest(request, mavenHome, localRepository);
45  
46          final InvocationResult invocationResult = result.getInvocationResult();
47          final String buildLogContent = FileUtils.fileRead(result.getBuildLog());
48  
49          // then
50          assertNotEquals(0, invocationResult.getExitCode(), "Maven execution must fail");
51          assertTrue(
52                  buildLogContent.contains("[GNUPG:] FAILURE sign 67108949"),
53                  "Maven execution failed because no pinentry program is available");
54      }
55  }