use of org.apache.commons.io.input.UnsynchronizedByteArrayInputStream in project exist by eXist-db.
the class CachingFilterInputStreamTest_NonMarkableByteArrayInputStream method readBytes_withZeroOffset_allFromCache.
@Test
public void readBytes_withZeroOffset_allFromCache() throws IOException, InstantiationException, IllegalAccessException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException {
final String testString = "hello";
final byte[] testData = testString.getBytes();
final InputStream is = new UnsynchronizedByteArrayInputStream(testData);
final CachingFilterInputStream cfis = new CachingFilterInputStream(getNewCache(is));
// mark the position
cfis.mark(Integer.MAX_VALUE);
// read the data
byte[] result = new byte[testData.length];
int read = cfis.read(result, 0, testData.length);
assertEquals(testData.length, read);
assertArrayEquals(testData, result);
// reset position to the mark
cfis.reset();
// attempt to reread the data (from the cache)
result = new byte[testData.length];
read = cfis.read(result, 0, testData.length);
assertEquals(testData.length, read);
assertArrayEquals(testData, result);
}
use of org.apache.commons.io.input.UnsynchronizedByteArrayInputStream in project exist by eXist-db.
the class CachingFilterInputStreamTest_NonMarkableByteArrayInputStream method readByte.
@Test
public void readByte() throws IOException, InstantiationException, IllegalAccessException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException {
final String testString = "helloWorld";
final byte[] testData = testString.getBytes();
final InputStream is = new UnsynchronizedByteArrayInputStream(testData);
final CachingFilterInputStream cfis = new CachingFilterInputStream(getNewCache(is));
// read the first 3 bytes
assertEquals(testData[0], cfis.read());
assertEquals(testData[1], cfis.read());
assertEquals(testData[2], cfis.read());
// mark position
cfis.mark(Integer.MAX_VALUE);
// read the next 3 bytes
assertEquals(testData[3], cfis.read());
assertEquals(testData[4], cfis.read());
assertEquals(testData[5], cfis.read());
// reset position to the mark
cfis.reset();
// attempt to reread the last 3 bytes from the mark (from the cache)
assertEquals(testData[3], cfis.read());
assertEquals(testData[4], cfis.read());
assertEquals(testData[5], cfis.read());
// read the next 2 bytes past the reset mark (past the cache, e.g. from src)
assertEquals(testData[6], cfis.read());
assertEquals(testData[7], cfis.read());
// reset position to the mark
cfis.reset();
// attempt to read the last 5 bytes (from the cache)
assertEquals(testData[3], cfis.read());
assertEquals(testData[4], cfis.read());
assertEquals(testData[5], cfis.read());
assertEquals(testData[6], cfis.read());
assertEquals(testData[7], cfis.read());
// mark position
cfis.mark(-1);
// read the next 2 bytes past the reset mark (past the cache, e.g. from src)
assertEquals(testData[8], cfis.read());
assertEquals(testData[9], cfis.read());
// reset position to the mark
cfis.reset();
// attempt to reread the last 2 bytes from the mark (from the cache)
assertEquals(testData[8], cfis.read());
assertEquals(testData[9], cfis.read());
}
use of org.apache.commons.io.input.UnsynchronizedByteArrayInputStream in project exist by eXist-db.
the class CachingFilterInputStreamTest_NonMarkableByteArrayInputStream method available_onClosedStream.
@Test
public void available_onClosedStream() throws IOException, InstantiationException, IllegalAccessException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException {
final String testString = "helloWorld";
final byte[] testData = testString.getBytes();
final InputStream is = new UnsynchronizedByteArrayInputStream(testData);
final CachingFilterInputStream cfis = new CachingFilterInputStream(getNewCache(is));
cfis.close();
assertEquals(0, cfis.available());
}
use of org.apache.commons.io.input.UnsynchronizedByteArrayInputStream in project exist by eXist-db.
the class CachingFilterInputStreamTest_NonMarkableByteArrayInputStream method available_onUnCachedStream.
@Test
public void available_onUnCachedStream() throws IOException, InstantiationException, IllegalAccessException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException {
final String testString = "helloWorld";
final byte[] testData = testString.getBytes();
final InputStream is = new UnsynchronizedByteArrayInputStream(testData);
final CachingFilterInputStream cfis = new CachingFilterInputStream(getNewCache(is));
assertEquals(testData.length, cfis.available());
}
use of org.apache.commons.io.input.UnsynchronizedByteArrayInputStream in project exist by eXist-db.
the class CachingFilterInputStreamTest_NonMarkableByteArrayInputStream method available_onPartiallyCachedStream.
@Test
public void available_onPartiallyCachedStream() throws IOException, InstantiationException, IllegalAccessException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException {
final String testString = "helloWorld";
final byte[] testData = testString.getBytes();
final InputStream is = new UnsynchronizedByteArrayInputStream(testData);
final CachingFilterInputStream cfis = new CachingFilterInputStream(getNewCache(is));
// mark for later reset
cfis.mark(Integer.MAX_VALUE);
// read first 2 bytes
cfis.read();
cfis.read();
// return to the start of the stream
cfis.reset();
assertEquals(testData.length, cfis.available());
}
Aggregations