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.release;
20  
21  import java.io.File;
22  
23  import org.apache.maven.plugin.testing.AbstractMojoTestCase;
24  import org.apache.maven.shared.release.ReleaseCleanRequest;
25  import org.apache.maven.shared.release.ReleaseManager;
26  import org.mockito.ArgumentCaptor;
27  
28  import static org.mockito.Mockito.mock;
29  import static org.mockito.Mockito.verify;
30  import static org.mockito.Mockito.verifyNoMoreInteractions;
31  
32  /**
33   * Test release:clean.
34   *
35   * @author <a href="mailto:brett@apache.org">Brett Porter</a>
36   */
37  public class CleanReleaseMojoTest extends AbstractMojoTestCase {
38      protected CleanReleaseMojo mojo;
39  
40      private File workingDirectory;
41  
42      protected void setUp() throws Exception {
43          super.setUp();
44  
45          File testFile = getTestFile("target/test-classes/mojos/clean/clean.xml");
46          mojo = (CleanReleaseMojo) lookupMojo("clean", testFile);
47          workingDirectory = testFile.getParentFile();
48          mojo.setBasedir(workingDirectory);
49      }
50  
51      public void testClean() throws Exception {
52          // prepare
53          ArgumentCaptor<ReleaseCleanRequest> request = ArgumentCaptor.forClass(ReleaseCleanRequest.class);
54  
55          ReleaseManager mock = mock(ReleaseManager.class);
56          mojo.setReleaseManager(mock);
57  
58          // execute
59          mojo.execute();
60  
61          // verify
62          verify(mock).clean(request.capture());
63  
64          assertEquals(mojo.getReactorProjects(), request.getValue().getReactorProjects());
65  
66          verifyNoMoreInteractions(mock);
67      }
68  }