package com.beijunyi.parallelgit.filesystem;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import org.junit.Test;
import static org.junit.Assert.*;
public class FilesDeleteTest extends AbstractGitFileSystemTest {
@Test
public void deleteFile_fileShouldNotExistAfterDeletion() throws IOException {
initGitFileSystem("/test_file.txt");
GitPath path = gfs.getPath("/test_file.txt");
Files.delete(path);
assertFalse(Files.exists(path));
}
@Test
public void deleteFile_theFileSystemShouldBecomeDirty() throws IOException {
initGitFileSystem("/test_file.txt");
GitPath path = gfs.getPath("/test_file.txt");
Files.delete(path);
assertTrue(gfs.getStatusProvider().isDirty());
}
@Test
public void deleteEmptyDirectory_directoryShouldNotExistAfterDeletion() throws IOException {
initGitFileSystem("/dir/some_file.txt");
GitPath file = gfs.getPath("/dir/some_file.txt");
Files.delete(file);
GitPath dir = gfs.getPath("/dir");
Files.delete(dir);
assertFalse(Files.exists(dir));
}
@Test
public void createAndDeleteEmptyDirectory_theFileSystemShouldRemainClean() throws IOException {
initGitFileSystem();
GitPath dir = gfs.getPath("/empty_dir");
Files.createDirectory(dir);
Files.delete(dir);
assertFalse(gfs.getStatusProvider().isDirty());
}
@Test
public void deleteNonEmptyDirectory_directoryShouldNotExistAfterDeletion() throws IOException {
initGitFileSystem("/dir/some_file.txt");
GitPath dir = gfs.getPath("/dir");
Files.delete(dir);
assertFalse(Files.exists(dir));
}
@Test(expected = NoSuchFileException.class)
public void deleteNonExistentFile_shouldThrowException() throws IOException {
initGitFileSystem();
Files.delete(gfs.getPath("/non_existent_file.txt"));
}
}