Search in sources :

Example 11 with UnsynchronizedByteArrayInputStream

use of org.apache.commons.io.input.UnsynchronizedByteArrayInputStream in project exist by eXist-db.

the class CachingFilterInputStreamTest method available_onOffsetPartiallyCachedStream.

@Test
public void available_onOffsetPartiallyCachedStream() throws IOException, InstantiationException, IllegalAccessException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException {
    final String testString = "helloWorld";
    final byte[] testData = testString.getBytes();
    InputStream is = new UnsynchronizedByteArrayInputStream(testData);
    CachingFilterInputStream cfis = new CachingFilterInputStream(getNewCache(is));
    // read first 2 bytes
    cfis.read();
    cfis.read();
    // mark for later reset
    cfis.mark(Integer.MAX_VALUE);
    // read next 2 bytes
    cfis.read();
    cfis.read();
    // return to the start of the stream
    cfis.reset();
    assertEquals(testData.length - 2, cfis.available());
}
Also used : UnsynchronizedByteArrayInputStream(org.apache.commons.io.input.UnsynchronizedByteArrayInputStream) InputStream(java.io.InputStream) UnsynchronizedByteArrayInputStream(org.apache.commons.io.input.UnsynchronizedByteArrayInputStream) Test(org.junit.Test)

Example 12 with UnsynchronizedByteArrayInputStream

use of org.apache.commons.io.input.UnsynchronizedByteArrayInputStream in project exist by eXist-db.

the class CachingFilterInputStreamTest method available_onUnCachedStream.

@Test
public void available_onUnCachedStream() throws IOException, InstantiationException, IllegalAccessException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException {
    final String testString = "helloWorld";
    final byte[] testData = testString.getBytes();
    InputStream is = new UnsynchronizedByteArrayInputStream(testData);
    CachingFilterInputStream cfis = new CachingFilterInputStream(getNewCache(is));
    assertEquals(testData.length, cfis.available());
}
Also used : UnsynchronizedByteArrayInputStream(org.apache.commons.io.input.UnsynchronizedByteArrayInputStream) InputStream(java.io.InputStream) UnsynchronizedByteArrayInputStream(org.apache.commons.io.input.UnsynchronizedByteArrayInputStream) Test(org.junit.Test)

Example 13 with UnsynchronizedByteArrayInputStream

use of org.apache.commons.io.input.UnsynchronizedByteArrayInputStream in project exist by eXist-db.

the class CachingFilterInputStreamTest method readByte_pastEndOfStream.

@Test
public void readByte_pastEndOfStream() throws IOException, InstantiationException, IllegalAccessException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException {
    final String testString = "helloWorld";
    final byte[] testData = testString.getBytes();
    InputStream is = new UnsynchronizedByteArrayInputStream(testData);
    CachingFilterInputStream cfis = new CachingFilterInputStream(getNewCache(is));
    // read all the bytes upto end of stream
    int b = -1;
    int testDataOffset = 0;
    while ((b = cfis.read()) > -1) {
        assertEquals(testData[testDataOffset++], b);
    }
    // read byte past end of stream
    b = cfis.read();
    assertEquals(-1, b);
}
Also used : UnsynchronizedByteArrayInputStream(org.apache.commons.io.input.UnsynchronizedByteArrayInputStream) InputStream(java.io.InputStream) UnsynchronizedByteArrayInputStream(org.apache.commons.io.input.UnsynchronizedByteArrayInputStream) Test(org.junit.Test)

Example 14 with UnsynchronizedByteArrayInputStream

use of org.apache.commons.io.input.UnsynchronizedByteArrayInputStream in project exist by eXist-db.

the class CachingFilterInputStreamTest method readBytes_partFromCache.

@Test
public void readBytes_partFromCache() throws IOException, InstantiationException, IllegalAccessException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException {
    final String testString = "helloWorld";
    final byte[] testData = testString.getBytes();
    InputStream is = new UnsynchronizedByteArrayInputStream(testData);
    CachingFilterInputStream cfis = new CachingFilterInputStream(getNewCache(is));
    // mark the position
    cfis.mark(Integer.MAX_VALUE);
    // read the first 5 byts data
    byte[] result = new byte[5];
    int read = cfis.read(result);
    assertEquals(5, read);
    assertArrayEquals(subArray(testData, 5), result);
    // reset position to the mark
    cfis.reset();
    // attempt to read all the data (first 5 bytes will be from the cache)
    result = new byte[testData.length];
    read = cfis.read(result);
    assertEquals(testData.length, read);
    assertArrayEquals(testData, result);
}
Also used : UnsynchronizedByteArrayInputStream(org.apache.commons.io.input.UnsynchronizedByteArrayInputStream) InputStream(java.io.InputStream) UnsynchronizedByteArrayInputStream(org.apache.commons.io.input.UnsynchronizedByteArrayInputStream) Test(org.junit.Test)

Example 15 with UnsynchronizedByteArrayInputStream

use of org.apache.commons.io.input.UnsynchronizedByteArrayInputStream in project exist by eXist-db.

the class CachingFilterInputStreamTest method readBytes_pastEndOfStream.

@Test
public void readBytes_pastEndOfStream() throws IOException, InstantiationException, IllegalAccessException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException {
    final String testString = "helloWorld";
    final byte[] testData = testString.getBytes();
    InputStream is = new UnsynchronizedByteArrayInputStream(testData);
    CachingFilterInputStream cfis = new CachingFilterInputStream(getNewCache(is));
    byte[] result = new byte[testData.length];
    int read = cfis.read(result);
    assertEquals(testData.length, read);
    assertArrayEquals(testData, result);
    byte[] endOfStreamResult = new byte[testData.length];
    read = cfis.read(endOfStreamResult);
    assertEquals(-1, read);
    assertArrayEquals(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, endOfStreamResult);
}
Also used : UnsynchronizedByteArrayInputStream(org.apache.commons.io.input.UnsynchronizedByteArrayInputStream) InputStream(java.io.InputStream) UnsynchronizedByteArrayInputStream(org.apache.commons.io.input.UnsynchronizedByteArrayInputStream) Test(org.junit.Test)

Aggregations

UnsynchronizedByteArrayInputStream (org.apache.commons.io.input.UnsynchronizedByteArrayInputStream)114 InputStream (java.io.InputStream)102 Test (org.junit.Test)93 MarkShieldInputStream (org.apache.commons.io.input.MarkShieldInputStream)31 UnsynchronizedByteArrayOutputStream (org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream)10 IOException (java.io.IOException)8 FilterInputStream (java.io.FilterInputStream)7 CachingFilterInputStream (org.exist.util.io.CachingFilterInputStream)7 XMLResource (org.xmldb.api.modules.XMLResource)6 DBBroker (org.exist.storage.DBBroker)5 Txn (org.exist.storage.txn.Txn)5 Element (org.w3c.dom.Element)4 Collection (org.xmldb.api.base.Collection)4 NodeProxy (org.exist.dom.persistent.NodeProxy)3 PermissionDeniedException (org.exist.security.PermissionDeniedException)3 DigestInputStream (org.exist.util.crypto.digest.DigestInputStream)3 Base64BinaryValueType (org.exist.xquery.value.Base64BinaryValueType)3 BooleanValue (org.exist.xquery.value.BooleanValue)3 DoubleValue (org.exist.xquery.value.DoubleValue)3 StringValue (org.exist.xquery.value.StringValue)3