1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.codehaus.gmavenplus.mojo;
18
19 import org.apache.maven.project.MavenProject;
20 import org.apache.maven.shared.model.fileset.FileSet;
21 import org.junit.Before;
22 import org.junit.Test;
23 import org.mockito.Mock;
24 import org.mockito.MockitoAnnotations;
25
26 import java.io.File;
27 import java.util.List;
28
29 import static java.util.Collections.singletonList;
30 import static org.junit.Assert.assertEquals;
31 import static org.junit.Assert.assertTrue;
32 import static org.mockito.Mockito.doReturn;
33
34
35
36
37
38
39
40 public class AbstractGroovySourcesMojoTest {
41 private TestMojo testMojo;
42
43 @Mock
44 private MavenProject project;
45
46 @Mock
47 private File basedir;
48
49 @Before
50 public void setup() {
51 MockitoAnnotations.openMocks(this);
52 testMojo = new TestMojo();
53 doReturn(basedir).when(project).getBasedir();
54 doReturn(singletonList("basedir" + File.separator + "src" + File.separator + "main" + File.separator + "java")).when(project).getCompileSourceRoots();
55 doReturn(singletonList("basedir" + File.separator + "src" + File.separator + "test" + File.separator + "java")).when(project).getTestCompileSourceRoots();
56 testMojo.project = project;
57 }
58
59 @Test
60 public void mainDefaultPattern() {
61 FileSet[] results = testMojo.getFilesets(null, false);
62
63 assertEquals(1, results.length);
64 assertEquals("basedir" + File.separator + "src" + File.separator + "main" + File.separator + "groovy", results[0].getDirectory());
65 assertEquals(1, results[0].getIncludes().size());
66 assertListsEqual(singletonList("**" + File.separator + "*.groovy"), results[0].getIncludes());
67 }
68
69 @Test
70 public void testDefaultPattern() {
71 FileSet[] results = testMojo.getTestFilesets(null, false);
72
73 assertEquals(1, results.length);
74 assertEquals("basedir" + File.separator + "src" + File.separator + "test" + File.separator + "groovy", results[0].getDirectory());
75 assertEquals(1, results[0].getIncludes().size());
76 assertListsEqual(singletonList("**" + File.separator + "*.groovy"), results[0].getIncludes());
77 }
78
79 @Test
80 public void mainWithJavaPattern() {
81 FileSet[] results = testMojo.getFilesets(null, true);
82
83 assertEquals(2, results.length);
84 assertEquals("basedir" + File.separator + "src" + File.separator + "main" + File.separator + "groovy", results[0].getDirectory());
85 assertEquals(1, results[0].getIncludes().size());
86 assertListsEqual(singletonList("**" + File.separator + "*.groovy"), results[0].getIncludes());
87 assertEquals(1, results[1].getIncludes().size());
88 assertListsEqual(singletonList("**" + File.separator + "*.java"), results[1].getIncludes());
89 }
90
91 @Test
92 public void testWithJavaPattern() {
93 FileSet[] results = testMojo.getTestFilesets(null, true);
94
95 assertEquals(2, results.length);
96 assertEquals("basedir" + File.separator + "src" + File.separator + "test" + File.separator + "groovy", results[0].getDirectory());
97 assertEquals(1, results[0].getIncludes().size());
98 assertListsEqual(singletonList("**" + File.separator + "*.groovy"), results[0].getIncludes());
99 assertEquals(1, results[1].getIncludes().size());
100 assertListsEqual(singletonList("**" + File.separator + "*.java"), results[1].getIncludes());
101 }
102
103 @Test
104 public void mainWithSpecifiedPattern() {
105 FileSet fileSet = new FileSet();
106 fileSet.setDirectory("basedir" + File.separator + "src" + File.separator + "custom");
107 fileSet.setIncludes(singletonList("**" + File.separator + "*.gvy"));
108 FileSet[] specifiedSources = new FileSet[]{fileSet};
109 FileSet[] results = testMojo.getTestFilesets(specifiedSources, false);
110
111 assertEquals(1, results.length);
112 assertEquals("basedir" + File.separator + "src" + File.separator + "custom", results[0].getDirectory());
113 assertEquals(1, results[0].getIncludes().size());
114 assertListsEqual(singletonList("**" + File.separator + "*.gvy"), results[0].getIncludes());
115 }
116
117 @Test
118 public void testWithSpecifiedPattern() {
119 FileSet fileSet = new FileSet();
120 fileSet.setDirectory("basedir" + File.separator + "src" + File.separator + "custom");
121 fileSet.setIncludes(singletonList("**" + File.separator + "*.gvy"));
122 FileSet[] specifiedSources = new FileSet[]{fileSet};
123 FileSet[] results = testMojo.getTestFilesets(specifiedSources, false);
124
125 assertEquals(1, results.length);
126 assertEquals("basedir" + File.separator + "src" + File.separator + "custom", results[0].getDirectory());
127 assertEquals(1, results[0].getIncludes().size());
128 assertListsEqual(singletonList("**" + File.separator + "*.gvy"), results[0].getIncludes());
129 }
130
131 @Test
132 public void mainWithSpecifiedPatternAndJavaPattern() {
133 FileSet fileSet = new FileSet();
134 fileSet.setDirectory("basedir" + File.separator + "src" + File.separator + "custom");
135 fileSet.setIncludes(singletonList("**" + File.separator + "*.gvy"));
136 FileSet[] specifiedSources = new FileSet[]{fileSet};
137 FileSet[] results = testMojo.getTestFilesets(specifiedSources, true);
138
139 assertEquals(2, results.length);
140 assertEquals("basedir" + File.separator + "src" + File.separator + "custom", results[0].getDirectory());
141 assertEquals(1, results[0].getIncludes().size());
142 assertListsEqual(singletonList("**" + File.separator + "*.gvy"), results[0].getIncludes());
143 assertEquals(1, results[1].getIncludes().size());
144 assertListsEqual(singletonList("**" + File.separator + "*.java"), results[1].getIncludes());
145 }
146
147 @Test
148 public void testWithSpecifiedPatternAndJavaPattern() {
149 FileSet fileSet = new FileSet();
150 fileSet.setDirectory("basedir" + File.separator + "src" + File.separator + "custom");
151 fileSet.setIncludes(singletonList("**" + File.separator + "*.gvy"));
152 FileSet[] specifiedSources = new FileSet[]{fileSet};
153 FileSet[] results = testMojo.getTestFilesets(specifiedSources, true);
154
155 assertEquals(2, results.length);
156 assertEquals("basedir" + File.separator + "src" + File.separator + "custom", results[0].getDirectory());
157 assertEquals(1, results[0].getIncludes().size());
158 assertListsEqual(singletonList("**" + File.separator + "*.gvy"), results[0].getIncludes());
159 assertEquals(1, results[1].getIncludes().size());
160 assertListsEqual(singletonList("**" + File.separator + "*.java"), results[1].getIncludes());
161 }
162
163 private void assertListsEqual(List<String> expected, List<String> actual) {
164 assertEquals(expected.size(), actual.size());
165 for (String expectedEntry : expected) {
166 assertTrue("Expected " + actual + " to contain " + expectedEntry, actual.contains(expectedEntry));
167 }
168 }
169
170 public static class TestMojo extends AbstractGroovySourcesMojo {
171 @Override
172 public void execute() {
173 }
174 }
175
176 }