@Test public void testCleanWithPaths() throws NoWorkTreeException, GitAPIException { // create status StatusCommand command = git.status(); Status status = command.call(); Set<String> files = status.getUntracked(); assertTrue(files.size() > 0); // run clean with setPaths Set<String> paths = new TreeSet<String>(); paths.add("File3.txt"); Set<String> cleanedFiles = git.clean().setPaths(paths).call(); status = git.status().call(); files = status.getUntracked(); assertTrue(files.size() == 3); assertTrue(cleanedFiles.contains("File3.txt")); assertFalse(cleanedFiles.contains("File2.txt")); }
@Test public void testCleanWithDryRun() throws NoWorkTreeException, GitAPIException { // create status StatusCommand command = git.status(); Status status = command.call(); Set<String> files = status.getUntracked(); assertTrue(files.size() > 0); // run clean Set<String> cleanedFiles = git.clean().setDryRun(true).call(); status = git.status().call(); files = status.getUntracked(); assertEquals(4, files.size()); assertTrue(cleanedFiles.contains("File2.txt")); assertTrue(cleanedFiles.contains("File3.txt")); assertTrue(!cleanedFiles.contains("sub-noclean/File1.txt")); assertTrue(cleanedFiles.contains("sub-noclean/File2.txt")); }
@Test public void testClean() throws NoWorkTreeException, GitAPIException { // create status StatusCommand command = git.status(); Status status = command.call(); Set<String> files = status.getUntracked(); assertTrue(files.size() > 0); // run clean Set<String> cleanedFiles = git.clean().call(); status = git.status().call(); files = status.getUntracked(); assertTrue(files.size() == 1); // one remains (directories not cleaned) assertTrue(cleanedFiles.contains("File2.txt")); assertTrue(cleanedFiles.contains("File3.txt")); assertTrue(!cleanedFiles.contains("sub-noclean/File1.txt")); assertTrue(cleanedFiles.contains("sub-noclean/File2.txt")); assertTrue(!cleanedFiles.contains("sub-clean/File4.txt")); }
@Test public void testCleanDirsWithRepository() throws Exception { // Set up a repository inside the outer repository String innerRepoName = "inner-repo"; File innerDir = new File(trash, innerRepoName); innerDir.mkdir(); InitCommand initRepoCommand = new InitCommand(); initRepoCommand.setDirectory(innerDir); initRepoCommand.call(); Status beforeCleanStatus = git.status().call(); Set<String> untrackedFolders = beforeCleanStatus.getUntrackedFolders(); Set<String> untrackedFiles = beforeCleanStatus.getUntracked(); // The inner repository should be listed as an untracked file assertTrue(untrackedFiles.contains(innerRepoName)); // The inner repository should not be listed as an untracked folder assertTrue(!untrackedFolders.contains(innerRepoName)); Set<String> cleanedFiles = git.clean().setCleanDirectories(true).call(); // The inner repository should not be cleaned. assertTrue(!cleanedFiles.contains(innerRepoName + "/")); assertTrue(cleanedFiles.contains("File2.txt")); assertTrue(cleanedFiles.contains("File3.txt")); assertTrue(!cleanedFiles.contains("sub-noclean/File1.txt")); assertTrue(cleanedFiles.contains("sub-noclean/File2.txt")); assertTrue(cleanedFiles.contains("sub-clean/")); assertTrue(cleanedFiles.size() == 4); Set<String> forceCleanedFiles = git.clean().setCleanDirectories(true).setForce(true).call(); // The inner repository should be cleaned this time assertTrue(forceCleanedFiles.contains(innerRepoName + "/")); }