View Javadoc
1   package org.apache.maven.plugins.assembly.archive.task;
2   
3   
4   /*
5    * Licensed to the Apache Software Foundation (ASF) under one
6    * or more contributor license agreements.  See the NOTICE file
7    * distributed with this work for additional information
8    * regarding copyright ownership.  The ASF licenses this file
9    * to you under the Apache License, Version 2.0 (the
10   * "License"); you may not use this file except in compliance
11   * with the License.  You may obtain a copy of the License at
12   *
13   *   http://www.apache.org/licenses/LICENSE-2.0
14   *
15   * Unless required by applicable law or agreed to in writing,
16   * software distributed under the License is distributed on an
17   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18   * KIND, either express or implied.  See the License for the
19   * specific language governing permissions and limitations
20   * under the License.
21   */
22  
23  import static org.mockito.Mockito.any;
24  import static org.mockito.Mockito.mock;
25  import static org.mockito.Mockito.verify;
26  import static org.mockito.Mockito.when;
27  
28  import java.io.File;
29  import java.util.Collections;
30  
31  import org.codehaus.plexus.archiver.Archiver;
32  import org.codehaus.plexus.archiver.FileSet;
33  import org.junit.Before;
34  import org.junit.Rule;
35  import org.junit.Test;
36  import org.junit.rules.TemporaryFolder;
37  import org.junit.runner.RunWith;
38  import org.mockito.junit.MockitoJUnitRunner;
39  
40  @RunWith( MockitoJUnitRunner.class )
41  public class AddDirectoryTaskTest
42  {
43      @Rule
44      public TemporaryFolder temporaryFolder = new TemporaryFolder();
45  
46      private Archiver archiver;
47  
48      @Before
49      public void setUp()
50      {
51          this.archiver = mock( Archiver.class );
52      }
53  
54      @Test
55      public void testAddDirectory_ShouldNotAddDirectoryIfNonExistent()
56          throws Exception
57      {
58          final int defaultDirMode = -1;
59          final int defaultFileMode = -1;
60  
61          when( archiver.getOverrideDirectoryMode() ).thenReturn( defaultDirMode );
62          when( archiver.getOverrideFileMode() ).thenReturn( defaultFileMode );
63  
64          AddDirectoryTask task = new AddDirectoryTask( new File( temporaryFolder.getRoot(), "non-existent" ) );
65  
66          task.execute( archiver );
67  
68          // result of easymock migration, should be assert of expected result instead of verifying methodcalls
69          verify( archiver ).getOverrideDirectoryMode();
70          verify( archiver ).getOverrideFileMode();
71      }
72  
73      @Test
74  
75      public void testAddDirectory_ShouldAddDirectory()
76          throws Exception
77      {
78          final int defaultDirMode = -1;
79          final int defaultFileMode = -1;
80  
81          when( archiver.getOverrideDirectoryMode() ).thenReturn( defaultDirMode );
82          when( archiver.getOverrideFileMode() ).thenReturn( defaultFileMode );
83  
84          AddDirectoryTask task = new AddDirectoryTask( temporaryFolder.getRoot() );
85          task.setOutputDirectory( "dir" );
86  
87          task.execute( archiver );
88  
89          // result of easymock migration, should be assert of expected result instead of verifying methodcalls
90          verify( archiver ).addFileSet( any( FileSet.class ) );
91          verify( archiver ).getOverrideDirectoryMode();
92          verify( archiver ).getOverrideFileMode();
93      }
94  
95      @Test
96      public void testAddDirectory_ShouldAddDirectoryWithDirMode()
97          throws Exception
98      {
99          final int dirMode = Integer.parseInt( "777", 8 );
100         final int fileMode = Integer.parseInt( "777", 8 );
101         final int defaultDirMode = -1;
102         final int defaultFileMode = -1;
103 
104         when( archiver.getOverrideDirectoryMode() ).thenReturn( defaultDirMode );
105         when( archiver.getOverrideFileMode() ).thenReturn( defaultFileMode );
106         
107         AddDirectoryTask task = new AddDirectoryTask( temporaryFolder.getRoot() );
108         task.setDirectoryMode( dirMode );
109         task.setFileMode( fileMode );
110         task.setOutputDirectory( "dir" );
111 
112         task.execute( archiver );
113         
114         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
115         verify( archiver ).addFileSet( any( FileSet.class ) );
116         verify( archiver ).getOverrideDirectoryMode();
117         verify( archiver ).getOverrideFileMode();
118         verify( archiver ).setDirectoryMode( dirMode );
119         verify( archiver ).setFileMode( fileMode );
120         verify( archiver ).setDirectoryMode( defaultDirMode );
121         verify( archiver ).setFileMode( defaultFileMode );
122     }
123 
124     @Test
125     public void testAddDirectory_ShouldAddDirectoryWithIncludesAndExcludes()
126         throws Exception
127     {
128         when( archiver.getOverrideDirectoryMode() ).thenReturn( -1 );
129         when( archiver.getOverrideFileMode() ).thenReturn( -1 );
130 
131         AddDirectoryTask task = new AddDirectoryTask( temporaryFolder.getRoot() );
132         task.setIncludes( Collections.singletonList( "**/*.txt" ) );
133         task.setExcludes( Collections.singletonList( "**/README.txt" ) );
134         task.setOutputDirectory( "dir" );
135 
136         task.execute( archiver );
137 
138         // result of easymock migration, should be assert of expected result instead of verifying methodcalls
139         verify( archiver ).addFileSet( any( FileSet.class ) );
140         verify( archiver ).getOverrideDirectoryMode();
141         verify( archiver ).getOverrideFileMode();
142     }
143 
144 }