IgnoreFileSet { public boolean isIgnored(@Nullable VirtualFile tested) { if (tested == null) { return true; } List<String> paths = relativeToIgnoreDir(tested); if (paths.isEmpty()) { return false; } for (IgnoreFilePattern pattern : ignorePatterns) { if (pattern.matches(paths)) { return pattern.isIgnoreMatchType(); } } return false; } private  IgnoreFileSet(@NotNull VirtualFile ignoreFile, @NotNull List<IgnoreFilePattern> ignorePatterns); boolean isCoveredByIgnoreFile(@Nullable VirtualFile tested); boolean isIgnored(@Nullable VirtualFile tested);  }
@Test public void testIsIgnored_Covered_ExplitNotIgnored() { assertThat(rootIgnoreFileSet.isIgnored(tree.get("/a/b/c/def.jpeg")), is(false)); }
@Test public void testIsIgnored_Covered_Ignored() { assertThat(rootIgnoreFileSet.isIgnored(tree.get("/x/a/b/c/def.jpeg")), is(true)); }
@Test public void testIsIgnored_Covered_NotListed() { assertThat(rootIgnoreFileSet.isIgnored(tree.get("/x/a/b/c.txt")), is(false)); }
@Test public void testIsIgnored_OtherPath_No() { assertThat(xIgnoreFileSet.isIgnored(tree.get("/a/b/c.txt")), is(false)); }