package usecases;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import java.util.Arrays;
import javax.annotation.Nonnull;
import com.beijunyi.parallelgit.filesystem.AbstractGitFileSystemTest;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class FilesSizeTest extends AbstractGitFileSystemTest {
@Nonnull
private byte[] bytesOfSize(int size) {
byte[] data = new byte[size];
Arrays.fill(data, (byte) '.');
return data;
}
@Test
public void sizeOfDirectory_shouldReturnZero() throws IOException {
initRepository();
writeToCache("/dir/file.txt");
commitToMaster();
initGitFileSystem();
assertEquals(0, Files.size(gfs.getPath("/dir")));
}
@Test
public void sizeOfFile_shouldReturnTheLengthOfItsByteArray() throws IOException {
initRepository();
writeToCache("/file.txt", bytesOfSize(15));
commitToMaster();
initGitFileSystem();
assertEquals(15, Files.size(gfs.getPath("/file.txt")));
}
@Test(expected = NoSuchFileException.class)
public void sizeOfNonExistentFile_shouldThrowNoSuchFileException() throws IOException {
initGitFileSystem();
Files.size(gfs.getPath("/non_existent_file.txt"));
}
}