}
public boolean isIgnored(Resource resource) {
- String[] patterns = ResourceUtils.isUnitTestClass(resource) ? project.getTestExclusionPatterns() : project.getExclusionPatterns();
- if (patterns == null) {
- return false;
+ boolean isTest = ResourceUtils.isUnitTestClass(resource);
+
+ String[] exclusions = isTest ? project.getTestExclusionPatterns() : project.getExclusionPatterns();
+ for (String exclusion : exclusions) {
+ if (resource.matchFilePattern(exclusion)) {
+ return true;
+ }
}
- for (String pattern : patterns) {
- if (resource.matchFilePattern(pattern)) {
+ String[] inclusions = isTest ? project.getTestInclusionPatterns() : project.getInclusionPatterns();
+ for (String inclusion : inclusions) {
+ if (!resource.matchFilePattern(inclusion)) {
return true;
}
}
assertThat(filter.isIgnored(resource)).isTrue();
}
+ @Test
+ public void should_support_inclusions() {
+ Project project = new Project("foo").setConfiguration(configWithExclusions("!**/bar/*"));
+ ExcludedResourceFilter filter = new ExcludedResourceFilter(project);
+
+ when(resource.matchFilePattern("**/bar/*")).thenReturn(true);
+ assertThat(filter.isIgnored(resource)).isFalse();
+
+ when(resource.matchFilePattern("**/bar/*")).thenReturn(false);
+ assertThat(filter.isIgnored(resource)).isTrue();
+ }
+
+ @Test
+ public void should_support_test_inclusions() {
+ when(resource.getQualifier()).thenReturn(Qualifiers.UNIT_TEST_FILE);
+
+ Project project = new Project("foo").setConfiguration(configWithTestExclusions("!**/bar/*"));
+ ExcludedResourceFilter filter = new ExcludedResourceFilter(project);
+
+ when(resource.matchFilePattern("**/bar/*")).thenReturn(true);
+ assertThat(filter.isIgnored(resource)).isFalse();
+
+ when(resource.matchFilePattern("**/bar/*")).thenReturn(false);
+ assertThat(filter.isIgnored(resource)).isTrue();
+ }
+
@Test
public void ignoreTestIfMatchesPattern() {
when(resource.getQualifier()).thenReturn(Qualifiers.UNIT_TEST_FILE);