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
28
29
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 }