List<String> contents = new ArrayList<String>();
contents.add("abcd");
contents.add("abcd");
contents.add("not");
RevCommit commit = add(testRepo, names, contents, "duplicates");
DuplicateBlobFilter filter = new DuplicateBlobFilter();
assertFalse(filter.hasDuplicates());
new CommitFinder(testRepo).setFilter(filter).find();
assertTrue(filter.hasDuplicates());
Map<RevCommit, DuplicateContainer> dupes = filter.getDuplicates();
assertNotNull(dupes);
assertTrue(dupes.containsKey(commit));
DuplicateContainer container = dupes.get(commit);
assertEquals(2, container.getTotal());
assertNotNull(container);
assertEquals(commit, container.getCommit());
Map<AnyObjectId, List<String>> files = container.getDuplicates();
assertNotNull(files);
assertEquals(1, files.size());
List<String> paths = files.values().iterator().next();
assertEquals(2, paths.size());
assertTrue(paths.contains("file1.txt"));
assertTrue(paths.contains("file2.txt"));
filter.reset();
Map<RevCommit, DuplicateContainer> reset = filter.getDuplicates();
assertNotNull(reset);
assertTrue(reset.isEmpty());
}