### Question:
TagFilter extends AncillaryFilter<VTMatch> { @Override public boolean passesFilter(VTMatch t) { VTMatchTag tag = t.getTag(); return !excludedTags.containsKey(tag.getName()); } TagFilter(VTController controller);   TagFilter(VTController controller, TagFilterChooser tagChooser); @Override FilterState getFilterState(); @Override FilterShortcutState getFilterShortcutState(); @SuppressWarnings("unchecked") // cast to map is safe since we put the map in earlier @Override void restoreFilterState(FilterState state); @Override void writeConfigState(SaveState saveState); @Override void readConfigState(SaveState saveState); @Override void clearFilter(); @Override JComponent getComponent(); @Override FilterEditingStatus getFilterStatus(); @Override boolean passesFilter(VTMatch t); @Override boolean isSubFilterOf(Filter<VTMatch> otherFilter); @Override String toString();  }### Answer:
@Test public void testFilterWithTagsButNoFilterApplied() { VTSession session = controller.getSession(); List<VTMatchSet> matchSets = session.getMatchSets(); VTMatchSet matchSet = matchSets.get(0); Collection<VTMatch> matches = matchSet.getMatches(); Iterator<VTMatch> iterator = matches.iterator(); int transactionID = startTransaction(session); for (int i = 0; i < matches.size(); i++) { VTMatch match = iterator.next(); if (i % 2 == 0) { continue; } match.setTag(new TestMatchTag()); } endTransaction(session, transactionID); for (VTMatch match : matches) { assertTrue("Match does not pass empty filter", tagFilter.passesFilter(match)); } }