View Javadoc
1   package org.codehaus.gmavenplus.mojo;
2   
3   import org.apache.maven.project.MavenProject;
4   import org.apache.maven.shared.model.fileset.FileSet;
5   import org.codehaus.gmavenplus.model.internal.Version;
6   import org.codehaus.gmavenplus.util.ClassWrangler;
7   import org.junit.Before;
8   import org.junit.Test;
9   import org.mockito.Mock;
10  import org.mockito.MockitoAnnotations;
11  
12  import java.io.File;
13  import java.util.HashSet;
14  import java.util.Set;
15  
16  import static org.junit.Assert.assertEquals;
17  import static org.junit.Assert.assertFalse;
18  import static org.junit.Assert.assertTrue;
19  import static org.mockito.Mockito.anyLong;
20  import static org.mockito.Mockito.atLeastOnce;
21  import static org.mockito.Mockito.doReturn;
22  import static org.mockito.Mockito.mock;
23  import static org.mockito.Mockito.verify;
24  
25  
26  /**
27   * Unit tests for the AbstractCompileMojo class.
28   *
29   * @author Keegan Witt
30   */
31  public class AbstractGenerateStubsMojoTest {
32      private TestMojo testMojo;
33  
34      @Mock
35      private MavenProject project;
36  
37      @Mock
38      private FileSet fileSet;
39  
40      @Mock
41      private File outputDirectory;
42  
43      @Before
44      public void setup() {
45          MockitoAnnotations.openMocks(this);
46          doReturn("STUBBED_DIRECTORY").when(fileSet).getDirectory();
47          doReturn(new String[]{"STUBBED_INCLUDES"}).when(fileSet).getIncludesArray();
48          doReturn("STUBBED_STUBS_DIRECTORY").when(outputDirectory).getAbsolutePath();
49          File mockBaseDir = mock(File.class);
50          doReturn("STUBBED_BASEDIR").when(mockBaseDir).getAbsolutePath();
51          doReturn(mockBaseDir).when(project).getBasedir();
52          testMojo = new TestMojo();
53          testMojo.project = project;
54      }
55  
56      @Test
57      public void testGetStubs() {
58          Set<File> stubs = testMojo.getStubs(outputDirectory);
59          assertEquals(0, stubs.size());
60      }
61  
62      @Test
63      public void testGroovyVersionSupportsActionTrue() {
64          testMojo = new TestMojo("1.5.0");
65          assertTrue(testMojo.groovyVersionSupportsAction());
66      }
67  
68      @Test
69      public void testGroovyVersionSupportsActionFalse() {
70          testMojo = new TestMojo("1.1-rc-3");
71          assertFalse(testMojo.groovyVersionSupportsAction());
72      }
73  
74      @Test
75      public void testResetStubModifiedDates() {
76          File stub = mock(File.class);
77          Set<File> stubs = new HashSet<>();
78          stubs.add(stub);
79          testMojo.resetStubModifiedDates(stubs);
80          verify(stub, atLeastOnce()).setLastModified(anyLong());
81      }
82  
83  
84  
85      protected static class TestMojo extends AbstractGenerateStubsMojo {
86          protected TestMojo() {
87              this(GROOVY_1_8_2.toString(), false);
88          }
89  
90          protected TestMojo(String groovyVersion) {
91              this(groovyVersion, false);
92          }
93  
94          protected TestMojo(String groovyVersion, boolean indy) {
95              classWrangler = mock(ClassWrangler.class);
96              doReturn(Version.parseFromString(groovyVersion)).when(classWrangler).getGroovyVersion();
97              doReturn(indy).when(classWrangler).isGroovyIndy();
98          }
99  
100         @Override
101         public void execute() {
102         }
103     }
104 
105 }