package com.beijunyi.parallelgit.utils; import java.io.IOException; import com.beijunyi.parallelgit.AbstractParallelGitTest; import org.eclipse.jgit.revwalk.RevCommit; import org.junit.Before; import org.junit.Test; import static org.eclipse.jgit.lib.FileMode.*; import static org.junit.Assert.*; public class GitFileUtilsGetFileAttributesTest extends AbstractParallelGitTest { @Before public void setupRepository() throws IOException { initRepository(); } @Test public void testFileExistsWhenFileExists_shouldReturnTrue() throws IOException { writeToCache("/test_file.txt"); RevCommit commit = commit(); assertTrue(GitFileUtils.exists("/test_file.txt", commit.getName(), repo)); } @Test public void testFileExistsWhenDirectoryExists_shouldReturnTrue() throws IOException { writeToCache("/dir/file.txt"); RevCommit commit = commit(); assertTrue(GitFileUtils.exists("/dir", commit.getName(), repo)); } @Test public void testFileExistsWhenFileDoesNotExist_shouldReturnFalse() throws IOException { writeSomethingToCache(); RevCommit commit = commit(); assertFalse(GitFileUtils.exists("/non_existent_file.txt", commit.getName(), repo)); } @Test public void testIsFileWhenFileExists_shouldReturnTrue() throws IOException { writeToCache("/test_file.txt"); RevCommit commit = commit(); assertTrue(GitFileUtils.isFile("/test_file.txt", commit.getName(), repo)); } @Test public void testIsFileWhenExecutableFileExists_shouldReturnFalse() throws IOException { writeToCache("/test_file.sh", someBytes(), EXECUTABLE_FILE); RevCommit commit = commit(); assertTrue(GitFileUtils.isFile("/test_file.sh", commit.getName(), repo)); } @Test public void testIsFileWhenDirectoryExists_shouldReturnFalse() throws IOException { writeToCache("/dir/file.txt"); RevCommit commit = commit(); assertFalse(GitFileUtils.isFile("/dir", commit.getName(), repo)); } @Test public void testIsFileWhenSymbolicLinkExists_shouldReturnFalse() throws IOException { writeToCache("/test_file", someBytes(), SYMLINK); RevCommit commit = commit(); assertFalse(GitFileUtils.isFile("/test_file", commit.getName(), repo)); } @Test public void testIsDirectoryWhenFileExists_shouldReturnFalse() throws IOException { writeToCache("/test_file.txt"); RevCommit commit = commit(); assertFalse(GitFileUtils.isDirectory("/test_file.txt", commit.getName(), repo)); } @Test public void testIsDirectoryWhenDirectoryExists_shouldReturnFalse() throws IOException { writeToCache("/dir/file.txt"); RevCommit commit = commit(); assertTrue(GitFileUtils.isDirectory("/dir", commit.getName(), repo)); } @Test public void testIsSymbolicLinkWhenFileExists_shouldReturnFalse() throws IOException { writeToCache("/test_file.txt"); RevCommit commit = commit(); assertFalse(GitFileUtils.isSymbolicLink("/test_file.txt", commit.getName(), repo)); } @Test public void testIsSymbolicLinkWhenSymbolicLinkExists_shouldReturnTrue() throws IOException { writeToCache("/test_file.txt", someBytes(), SYMLINK); RevCommit commit = commit(); assertTrue(GitFileUtils.isSymbolicLink("/test_file.txt", commit.getName(), repo)); } }