You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2020/08/17 06:07:35 UTC
svn commit: r1880921 - in
/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io:
RandomAccessReadBufferTest.java RandomAccessReadViewTest.java
SequenceRandomAccessReadTest.java
Author: lehmi
Date: Mon Aug 17 06:07:35 2020
New Revision: 1880921
URL: http://svn.apache.org/viewvc?rev=1880921&view=rev
Log:
PDFBOX-4836: add more tests
Modified:
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadViewTest.java
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/SequenceRandomAccessReadTest.java
Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java?rev=1880921&r1=1880920&r2=1880921&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java Mon Aug 17 06:07:35 2020
@@ -17,6 +17,9 @@
package org.apache.pdfbox.io;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -59,7 +62,48 @@ public class RandomAccessReadBufferTest
assertEquals(2, randomAccessSource.read());
assertEquals(3, randomAccessSource.getPosition());
+ assertFalse(randomAccessSource.isClosed());
randomAccessSource.close();
+ assertTrue(randomAccessSource.isClosed());
+ }
+
+ @Test
+ public void testSeekEOF() throws IOException
+ {
+ byte[] inputValues = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
+ ByteArrayInputStream bais = new ByteArrayInputStream(inputValues);
+
+ RandomAccessReadBuffer randomAccessSource = new RandomAccessReadBuffer(bais);
+
+ randomAccessSource.seek(3);
+ assertEquals(3, randomAccessSource.getPosition());
+
+ try
+ {
+ randomAccessSource.seek(-1);
+ fail("seek should have thrown an IOException");
+ }
+ catch (IOException e)
+ {
+
+ }
+
+ assertFalse(randomAccessSource.isEOF());
+ randomAccessSource.seek(20);
+ assertTrue(randomAccessSource.isEOF());
+ assertEquals(-1, randomAccessSource.read());
+ assertEquals(-1, randomAccessSource.read(new byte[1], 0, 1));
+
+ randomAccessSource.close();
+ try
+ {
+ randomAccessSource.read();
+ fail("checkClosed should have thrown an IOException");
+ }
+ catch (IOException e)
+ {
+
+ }
}
@Test
Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadViewTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadViewTest.java?rev=1880921&r1=1880920&r2=1880921&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadViewTest.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/RandomAccessReadViewTest.java Mon Aug 17 06:07:35 2020
@@ -17,6 +17,8 @@
package org.apache.pdfbox.io;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.ByteArrayInputStream;
@@ -65,8 +67,53 @@ public class RandomAccessReadViewTest
assertEquals(12, randomAccessReadView.read());
assertEquals(3, randomAccessReadView.getPosition());
+ assertFalse(randomAccessReadView.isClosed());
+ randomAccessReadView.close();
+ assertTrue(randomAccessReadView.isClosed());
+
+ randomAccessSource.close();
+ }
+
+ @Test
+ public void testSeekEOF() throws IOException
+ {
+ byte[] values = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20 };
+ RandomAccessReadBuffer randomAccessSource = new RandomAccessReadBuffer(
+ new ByteArrayInputStream(values));
+ RandomAccessReadView randomAccessReadView = new RandomAccessReadView(randomAccessSource, 10,
+ 20);
+
+ randomAccessReadView.seek(3);
+ assertEquals(3, randomAccessReadView.getPosition());
+
+ try
+ {
+ randomAccessReadView.seek(-1);
+ fail("seek should have thrown an IOException");
+ }
+ catch (IOException e)
+ {
+
+ }
+
+ assertFalse(randomAccessReadView.isEOF());
+ randomAccessReadView.seek(20);
+ assertTrue(randomAccessReadView.isEOF());
+ assertEquals(-1, randomAccessReadView.read());
+ assertEquals(-1, randomAccessReadView.read(new byte[1], 0, 1));
+
randomAccessReadView.close();
randomAccessSource.close();
+ try
+ {
+ randomAccessReadView.read();
+ fail("checkClosed should have thrown an IOException");
+ }
+ catch (IOException e)
+ {
+
+ }
}
@Test
Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/SequenceRandomAccessReadTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/SequenceRandomAccessReadTest.java?rev=1880921&r1=1880920&r2=1880921&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/SequenceRandomAccessReadTest.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/SequenceRandomAccessReadTest.java Mon Aug 17 06:07:35 2020
@@ -49,6 +49,15 @@ public class SequenceRandomAccessReadTes
randomAccessReadBuffer2);
SequenceRandomAccessRead sequenceRandomAccessRead = new SequenceRandomAccessRead(inputList);
+ try
+ {
+ sequenceRandomAccessRead.createView(0, 10);
+ fail("createView should have thrown an IOException");
+ }
+ catch(IOException e)
+ {
+ }
+
int overallLength = input1.length() + input2.length();
assertEquals(overallLength, sequenceRandomAccessRead.length());
@@ -121,6 +130,15 @@ public class SequenceRandomAccessReadTes
assertEquals('f', sequenceRandomAccessRead.peek());
assertEquals('f', sequenceRandomAccessRead.read());
+ try
+ {
+ sequenceRandomAccessRead.seek(-1);
+ fail("seek should have thrown an IOException");
+ }
+ catch (IOException e)
+ {
+ }
+
sequenceRandomAccessRead.close();
}
@@ -189,6 +207,8 @@ public class SequenceRandomAccessReadTes
assertFalse(sequenceRandomAccessRead.isEOF());
assertEquals('t', sequenceRandomAccessRead.read());
assertTrue(sequenceRandomAccessRead.isEOF());
+ assertEquals(-1, sequenceRandomAccessRead.read());
+ assertEquals(-1, sequenceRandomAccessRead.read(new byte[1], 0, 1));
// rewind
sequenceRandomAccessRead.rewind(5);
assertFalse(sequenceRandomAccessRead.isEOF());
@@ -202,7 +222,9 @@ public class SequenceRandomAccessReadTes
assertTrue(sequenceRandomAccessRead.isEOF());
assertEquals(overallLength + 10, sequenceRandomAccessRead.getPosition());
+ assertFalse(sequenceRandomAccessRead.isClosed());
sequenceRandomAccessRead.close();
+ assertTrue(sequenceRandomAccessRead.isClosed());
// closing a SequenceRandomAccessRead twice shouldn't be a problem
sequenceRandomAccessRead.close();