package org.everrest.core.impl.provider;
import com.google.common.io.ByteStreams;
import org.everrest.core.impl.FileCollector;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Random;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertTrue;
/**
* @author andrew00x
*/
public class IOHelperTest {
private byte[] testContent;
@Before
public void setUp() throws Exception {
Random random = new Random();
testContent = new byte[64];
random.nextBytes(testContent);
}
@After
public void tearDown() throws Exception {
FileCollector.getInstance().clean();
}
@Test
public void buffersGivenInputStreamInMemoryWhenLengthDoesNotExceedThreshold() throws Exception {
InputStream inputStream = new ByteArrayInputStream(testContent);
InputStream bufferedStream = IOHelper.bufferStream(inputStream, testContent.length + 1);
assertTrue(bufferedStream instanceof ByteArrayInputStream);
assertArrayEquals(testContent, ByteStreams.toByteArray(bufferedStream));
}
@Test
public void buffersGivenInputStreamInMemoryWhenLengthExceedsThreshold() throws Exception {
InputStream inputStream = new ByteArrayInputStream(testContent);
InputStream bufferedStream = IOHelper.bufferStream(inputStream, testContent.length - 1);
assertTrue(bufferedStream instanceof FileInputStream);
try {
assertArrayEquals(testContent, ByteStreams.toByteArray(bufferedStream));
} finally {
bufferedStream.close();
}
}
}