1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugin.eclipse;
20
21 import java.util.ArrayList;
22 import java.util.List;
23
24 import junit.framework.TestCase;
25
26
27
28
29
30
31
32 public class EclipseSourceDirTest
33 extends TestCase
34 {
35 private EclipseSourceDir testFixture_src_main_java()
36 {
37 List includes = new ArrayList();
38 includes.add( EclipsePlugin.JAVA_FILE_PATTERN );
39 return new EclipseSourceDir( "/src/main/java", null, false, false, includes, null, false );
40 }
41
42 private EclipseSourceDir testFixture_src_main_resources()
43 {
44 List excludes = new ArrayList();
45 excludes.add( EclipsePlugin.JAVA_FILE_PATTERN );
46 return new EclipseSourceDir( "/src/main/resources", "target/classes", true, false, null, excludes, false );
47 }
48
49 private EclipseSourceDir testFixture_src_test_java()
50 {
51 List includes = new ArrayList();
52 includes.add( EclipsePlugin.JAVA_FILE_PATTERN );
53 return new EclipseSourceDir( "/src/test/java", "target/test-classes", false, true, includes, null, false );
54 }
55
56 private EclipseSourceDir testFixture_src_test_resources()
57 {
58 List excludes = new ArrayList();
59 excludes.add( EclipsePlugin.JAVA_FILE_PATTERN );
60 return new EclipseSourceDir( "/src/test/resources", "target/test-classes", true, true, null, excludes, false );
61 }
62
63
64
65
66
67
68
69
70
71
72
73 public void testMerge_src_main_java_with_src_main_resources()
74 throws Exception
75 {
76 EclipseSourceDir src_main_java = testFixture_src_main_java();
77 EclipseSourceDir src_main_resources = testFixture_src_main_resources();
78
79 src_main_java.merge( src_main_resources );
80 assertEquals( "source /src/main/java: output=null, include=[], exclude=[], test=false, filtering=false",
81 src_main_java.toString() );
82 }
83
84 public void testMerge_two_resource_directories()
85 throws Exception
86 {
87 EclipseSourceDir resource1 = testFixture_src_main_resources();
88 EclipseSourceDir resource2 = testFixture_src_main_resources();
89
90 resource1.getInclude().add( "**/*.txt" );
91 resource1.getExclude().add( "**/*.svn" );
92
93 resource2.getInclude().add( "**/*.xml" );
94 resource2.getExclude().add( "**/*.cvs" );
95
96 resource1.merge( resource2 );
97
98 assertEquals(
99 "resource /src/main/resources: output=target/classes, include=[**/*.txt|**/*.xml], exclude=[**/*.java|**/*.svn|**/*.cvs], test=false, filtering=false",
100 resource1.toString() );
101 }
102
103 public void testMerge_two_resource_directories_with_duplicates()
104 throws Exception
105 {
106 EclipseSourceDir resource1 = testFixture_src_main_resources();
107 EclipseSourceDir resource2 = testFixture_src_main_resources();
108
109 resource1.getInclude().add( "**/*.dup" );
110 resource1.getInclude().add( "**/*.txt" );
111 resource1.getExclude().add( "**/*.svn" );
112 resource1.getExclude().add( "**/*~" );
113
114 resource2.getInclude().add( "**/*.xml" );
115 resource2.getInclude().add( "**/*.dup" );
116 resource2.getExclude().add( "**/*.cvs" );
117 resource2.getExclude().add( "**/*~" );
118
119 resource1.merge( resource2 );
120
121 assertEquals(
122 "resource /src/main/resources: output=target/classes, include=[**/*.dup|**/*.txt|**/*.xml], exclude=[**/*.java|**/*.svn|**/*~|**/*.cvs], test=false, filtering=false",
123 resource1.toString() );
124 }
125
126 public void testToString_src_main_java()
127 {
128 EclipseSourceDir objectUnderTest = testFixture_src_main_java();
129
130 assertEquals(
131 "source /src/main/java: output=null, include=[**/*.java], exclude=[], test=false, filtering=false",
132 objectUnderTest.toString() );
133 }
134
135 public void testToString_src_main_resources()
136 {
137 EclipseSourceDir objectUnderTest = testFixture_src_main_resources();
138
139 assertEquals(
140 "resource /src/main/resources: output=target/classes, include=[], exclude=[**/*.java], test=false, filtering=false",
141 objectUnderTest.toString() );
142 }
143
144 public void testToString_src_test_java()
145 {
146 EclipseSourceDir objectUnderTest = testFixture_src_test_java();
147
148 assertEquals(
149 "source /src/test/java: output=target/test-classes, include=[**/*.java], exclude=[], test=true, filtering=false",
150 objectUnderTest.toString() );
151 }
152
153 public void testToString_src_test_resources()
154 {
155 EclipseSourceDir objectUnderTest = testFixture_src_test_resources();
156
157 assertEquals(
158 "resource /src/test/resources: output=target/test-classes, include=[], exclude=[**/*.java], test=true, filtering=false",
159 objectUnderTest.toString() );
160 }
161
162 public void testMergWhenFilteringIsNotIdentical() throws Exception
163 {
164 EclipseSourceDir resource1 = testFixture_src_main_resources();
165 EclipseSourceDir resource2 = testFixture_src_main_resources();
166
167 resource1.getInclude().add("**/*.dup");
168 resource1.getInclude().add("**/*.txt");
169 resource1.getExclude().add("**/*.svn");
170 resource1.getExclude().add("**/*~");
171
172 resource2.getInclude().add("**/*.xml");
173 resource2.getInclude().add("**/*.dup");
174 resource2.getExclude().add("**/*.cvs");
175 resource2.getExclude().add("**/*~");
176 resource2.setFiltering(true);
177
178 boolean result = resource1.merge(resource2);
179
180 assertFalse("Resource dirs should not have been merged successfully", result);
181
182 assertEquals(
183 "resource /src/main/resources: output=target/classes, include=[**/*.dup|**/*.txt|**/*.xml], exclude=[**/*.java|**/*.svn|**/*~|**/*.cvs], test=false, filtering=false",
184 resource1.toString());
185 }
186
187 public void testMergWhenFilteringIsNotIdenticalOverlapping() throws Exception
188 {
189 EclipseSourceDir resource1 = testFixture_src_main_resources();
190 EclipseSourceDir resource2 = testFixture_src_main_resources();
191
192 resource2.getInclude().add("**/*.properties");
193 resource2.setFiltering(true);
194
195 boolean result = resource1.merge(resource2);
196
197 assertFalse("Resource dirs should not have been merged successfully", result);
198
199 assertEquals(
200 "resource /src/main/resources: output=target/classes, include=[], exclude=[**/*.java], test=false, filtering=false",
201 resource1.toString());
202 }
203
204 }