package com.beijunyi.parallelgit.utils;
import java.io.IOException;
import java.io.InputStream;
import com.beijunyi.parallelgit.AbstractParallelGitTest;
import com.beijunyi.parallelgit.utils.io.BlobSnapshot;
import org.eclipse.jgit.lib.ObjectId;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
public class BlobUtilsReadBlobTest extends AbstractParallelGitTest {
@Before
public void setUp() throws IOException {
initRepository();
}
@Test
public void getBlobSize_shouldReturnTheLengthOfTheByteArray() throws IOException {
byte[] bytes = someBytes();
ObjectId blob = writeToCache(someFilename(), bytes);
commit();
assertEquals(bytes.length, BlobUtils.getBlobSize(blob, repo));
}
@Test
public void openBlob_theResultShouldStreamTheBlobData() throws Exception {
byte[] expected = someBytes();
ObjectId blob = writeToCache(someFilename(), expected);
commit();
try(InputStream input = BlobUtils.openBlob(blob, repo)) {
byte[] actual = new byte[expected.length];
assertEquals(actual.length, input.read(actual));
assertArrayEquals(expected, actual);
}
}
@Test
public void readBlob_theResultShouldHaveTheBlobData() throws Exception {
byte[] expected = someBytes();
ObjectId blob = writeToCache(someFilename(), expected);
commit();
BlobSnapshot snapshot = BlobUtils.readBlob(blob, repo);
assertEquals(blob, snapshot.getId());
assertArrayEquals(expected, snapshot.getData());
}
}