package com.beijunyi.parallelgit.utils;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.NoSuchFileException;
import com.beijunyi.parallelgit.AbstractParallelGitTest;
import org.eclipse.jgit.revwalk.RevCommit;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
public class TreeUtilsOpenFileTest extends AbstractParallelGitTest {
@Before
public void setupRepository() throws IOException {
initRepository();
}
@Test
public void openFile_theResultInputStreamShouldProvideTheDataOfTheFile() throws IOException {
byte[] expected = someBytes();
writeToCache("/test_file.txt", expected);
RevCommit commit = commitToMaster();
byte[] actual = new byte[expected.length];
try(InputStream stream = TreeUtils.openFile("/test_file.txt", commit.getTree(), repo)) {
assertEquals(expected.length, stream.read(actual));
}
assertArrayEquals(expected, actual);
}
@Test(expected = NoSuchFileException.class)
public void openFileWhenFileDoesNotExist_shouldThrowNoSuchFileException() throws IOException {
writeSomethingToCache();
RevCommit commit = commitToMaster();
TreeUtils.openFile("/non_existent_file.txt", commit.getTree(), repo);
}
}