public boolean isIncluded(TestDescription description) { for (TestSelector testSelector : testSelectors) { if (testSelector.matches(description)) { return testSelector.isInclusive(); } } return defaultIsInclusive; }
public TestSelectorList build() { // Default to being inclusive only if all selectors are *exclusive*. boolean defaultIsInclusive = true; for (TestSelector testSelector : testSelectors) { if (testSelector.isInclusive()) { defaultIsInclusive = false; break; } } return new TestSelectorList(testSelectors, defaultIsInclusive); }
public List<String> getExplanation() { List<String> lines = new ArrayList<>(); for (TestSelector testSelector : testSelectors) { lines.add(testSelector.getExplanation()); } // If the last selector matches everything, derive our default behavior from that test selector // and replace the last line of explanation. int lastIndex = testSelectors.size() - 1; TestSelector lastTestSelector = testSelectors.get(lastIndex); if (lastTestSelector.isMatchAnyClass() && lastTestSelector.isMatchAnyMethod()) { String lastLine = formatEverythingElseLine(lastTestSelector.isInclusive()); lines.set(lastIndex, lastLine); } else { // Otherwise describe our default behavior. lines.add(formatEverythingElseLine(defaultIsInclusive)); } return lines; }