Author: tilman
Date: Tue Nov 25 12:40:38 2025
New Revision: 1929975
Log:
PDFBOX-5660: small code improvements suggested by Jens Kaiser in pr 192
Modified:
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/afm/AFMParserTest.java
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/cff/CFFParserTest.java
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/pfb/PfbParserTest.java
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFCloneUtilityTest.java
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/annotation/AppearanceGenerationTest.java
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/ControlCharacterTest.java
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroFormTest.java
Modified:
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/afm/AFMParserTest.java
==============================================================================
---
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/afm/AFMParserTest.java
Tue Nov 25 12:10:03 2025 (r1929974)
+++
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/afm/AFMParserTest.java
Tue Nov 25 12:40:38 2025 (r1929975)
@@ -22,7 +22,6 @@ import static org.junit.jupiter.api.Asse
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.fail;
import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
@@ -33,6 +32,8 @@ import java.util.List;
import java.util.Optional;
import org.apache.fontbox.util.BoundingBox;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
+import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.jupiter.api.Test;
/**
@@ -41,83 +42,49 @@ import org.junit.jupiter.api.Test;
*/
class AFMParserTest
{
+ public static final String HELVETICA_AFM =
"src/test/resources/afm/Helvetica.afm";
+
@Test
void testStartFontMetrics() throws IOException
{
- try
- {
- new AFMParser(new
ByteArrayInputStream("huhu".getBytes(StandardCharsets.US_ASCII)))
- .parse();
- fail("The AFMParser should have thrown an IOException because of a
missing "
- + AFMParser.START_FONT_METRICS);
- }
- catch (IOException e)
- {
- // expected exception
- }
+ assertThrows(IOException.class,
+ () -> new AFMParser(new
ByteArrayInputStream("huhu".getBytes(StandardCharsets.US_ASCII))).parse(),
+ "The AFMParser should have thrown an IOException because of a
missing " + AFMParser.START_FONT_METRICS);
}
@Test
void testEndFontMetrics() throws IOException
{
- try (InputStream is = new
FileInputStream("src/test/resources/afm/NoEndFontMetrics.afm"))
- {
- AFMParser parser = new AFMParser(is);
- try
- {
- parser.parse();
- fail("The AFMParser should have thrown an IOException because
of a missing "
- + AFMParser.END_FONT_METRICS);
- }
- catch (IOException e)
- {
- assertTrue(e.getMessage().contains("Unknown AFM key"));
- }
- }
+ AFMParser parser = new AFMParser(new
FileInputStream("src/test/resources/afm/NoEndFontMetrics.afm"));
+ IOException e = assertThrows(IOException.class, parser::parse,
+ "The AFMParser should have thrown an IOException because of a
missing " + AFMParser.END_FONT_METRICS);
+ assertTrue(e.getMessage().contains("Unknown AFM key"));
}
@Test
void testMalformedFloat() throws IOException
{
- try (InputStream is = new
FileInputStream("src/test/resources/afm/MalformedFloat.afm"))
- {
- AFMParser parser = new AFMParser(is);
- try
- {
- parser.parse();
- fail("The AFMParser should have thrown an IOException because
of a malformed float value");
- }
- catch (IOException e)
- {
- assertTrue(e.getCause() instanceof NumberFormatException);
- assertTrue(e.getMessage().contains("4,1ab"));
- }
- }
+ AFMParser parser = new AFMParser(new
FileInputStream("src/test/resources/afm/MalformedFloat.afm"));
+ IOException e = assertThrows(IOException.class, parser::parse,
+ "The AFMParser should have thrown an IOException because of a
malformed float value");
+ assertInstanceOf(NumberFormatException.class, e.getCause());
+ assertTrue(e.getMessage().contains("4,1ab"));
}
@Test
void testMalformedInteger() throws IOException
{
- try (InputStream is = new
FileInputStream("src/test/resources/afm/MalformedInteger.afm"))
- {
- try
- {
- AFMParser parser = new AFMParser(is);
- parser.parse();
- fail("The AFMParser should have thrown an IOException because
of a malformed int value");
- }
- catch (IOException e)
- {
- assertTrue(e.getCause() instanceof NumberFormatException);
- assertTrue(e.getMessage().contains("3.4"));
- }
- }
+ AFMParser parser = new AFMParser(new
FileInputStream("src/test/resources/afm/MalformedInteger.afm"));
+ IOException e = assertThrows(IOException.class, parser::parse,
+ "The AFMParser should have thrown an IOException because of a
malformed int value");
+ assertInstanceOf(NumberFormatException.class, e.getCause());
+ assertTrue(e.getMessage().contains("3.4"));
}
@Test
void testHelveticaFontMetrics() throws IOException
{
- try (InputStream is = new
FileInputStream("src/test/resources/afm/Helvetica.afm"))
+ try (InputStream is = new FileInputStream(HELVETICA_AFM))
{
AFMParser parser = new AFMParser(is);
checkHelveticaFontMetrics(parser.parse());
@@ -127,7 +94,7 @@ class AFMParserTest
@Test
void testHelveticaCharMetrics() throws IOException
{
- try (InputStream is = new
FileInputStream("src/test/resources/afm/Helvetica.afm"))
+ try (InputStream is = new FileInputStream(HELVETICA_AFM))
{
AFMParser parser = new AFMParser(is);
FontMetrics fontMetrics = parser.parse();
@@ -140,7 +107,7 @@ class AFMParserTest
@Test
void testHelveticaKernPairs() throws IOException
{
- try (InputStream is = new
FileInputStream("src/test/resources/afm/Helvetica.afm"))
+ try (InputStream is = new FileInputStream(HELVETICA_AFM))
{
AFMParser parser = new AFMParser(is);
FontMetrics fontMetrics = parser.parse();
@@ -164,7 +131,7 @@ class AFMParserTest
@Test
void testHelveticaFontMetricsReducedDataset() throws IOException
{
- try (InputStream is = new
FileInputStream("src/test/resources/afm/Helvetica.afm"))
+ try (InputStream is = new FileInputStream(HELVETICA_AFM))
{
AFMParser parser = new AFMParser(is);
checkHelveticaFontMetrics(parser.parse(true));
@@ -174,7 +141,7 @@ class AFMParserTest
@Test
void testHelveticaCharMetricsReducedDataset() throws IOException
{
- try (InputStream is = new
FileInputStream("src/test/resources/afm/Helvetica.afm"))
+ try (InputStream is = new FileInputStream(HELVETICA_AFM))
{
AFMParser parser = new AFMParser(is);
FontMetrics fontMetrics = parser.parse(true);
@@ -187,7 +154,7 @@ class AFMParserTest
@Test
void testHelveticaKernPairsReducedDataset() throws IOException
{
- try (InputStream is = new
FileInputStream("src/test/resources/afm/Helvetica.afm"))
+ try (InputStream is = new FileInputStream(HELVETICA_AFM))
{
AFMParser parser = new AFMParser(is);//
FontMetrics fontMetrics = parser.parse(true);
Modified:
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/cff/CFFParserTest.java
==============================================================================
---
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/cff/CFFParserTest.java
Tue Nov 25 12:10:03 2025 (r1929974)
+++
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/cff/CFFParserTest.java
Tue Nov 25 12:40:38 2025 (r1929975)
@@ -15,19 +15,19 @@
*/
package org.apache.fontbox.cff;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.IOException;
-import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.fontbox.util.BoundingBox;
import org.apache.pdfbox.io.RandomAccessReadBufferedFile;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@@ -108,7 +108,7 @@ class CFFParserTest
{
CFFEncoding encoding = testCFFType1Font.getEncoding();
assertNotNull(encoding, "Encoding must not be null");
- assertTrue(encoding instanceof CFFStandardEncoding,
+ assertInstanceOf(CFFStandardEncoding.class, encoding,
"Encoding is not an instance of CFFStandardEncoding");
}
@@ -119,23 +119,19 @@ class CFFParserTest
assertFalse(charStringBytes.isEmpty());
assertEquals(824, testCFFType1Font.getNumCharStrings());
// check some randomly chosen values
- assertTrue(Arrays.equals(new byte[] { -4, 15, 14 },
charStringBytes.get(1)), //
+ assertArrayEquals(new byte[] { -4, 15, 14 }, charStringBytes.get(1), //
"Other char strings byte values than expected");
- assertTrue(
- Arrays.equals(new byte[] { 72, 29, -13, 29, -9, -74, -9, 43,
3, 33, 29, 14 },
- charStringBytes.get(16)), //
+ assertArrayEquals(new byte[] { 72, 29, -13, 29, -9, -74, -9, 43, 3,
33, 29, 14 },
+ charStringBytes.get(16), //
"Other char strings byte values than expected");
- assertTrue(
- Arrays.equals(new byte[] { -41, 88, 29, -47, -9, 12, 1, -123,
10, 3, 35, 29, -9,
- -50, -9, 62, -9, 3, 10, 85, -56, 61, 10 },
charStringBytes.get(195)), //
+ assertArrayEquals(new byte[] { -41, 88, 29, -47, -9, 12, 1, -123, 10,
3, 35, 29, -9,
+ -50, -9, 62, -9, 3, 10, 85, -56, 61, 10 },
charStringBytes.get(195), //
"Other char strings byte values than expected");
- assertTrue(
- Arrays.equals(new byte[] { -5, -69, -61, -8, 28, 1, -9, 57,
-39, -65, 29, 14 },
- charStringBytes.get(525)), //
+ assertArrayEquals(new byte[] { -5, -69, -61, -8, 28, 1, -9, 57, -39,
-65, 29, 14 },
+ charStringBytes.get(525), //
"Other char strings byte values than expected");
- assertTrue(
- Arrays.equals(new byte[] { 107, -48, 10, -9, 20, -9, 123, 3,
-9, -112, -8, -46, 21,
- -10, 115, 10 }, charStringBytes.get(738)), //
+ assertArrayEquals(new byte[] { 107, -48, 10, -9, 20, -9, 123, 3, -9,
-112, -8, -46, 21,
+ -10, 115, 10 }, charStringBytes.get(738), //
"Other char strings byte values than expected");
}
@@ -146,16 +142,13 @@ class CFFParserTest
assertFalse(globalSubrIndex.isEmpty());
assertEquals(278, globalSubrIndex.size());
// check some randomly chosen values
- assertTrue(
- Arrays.equals(new byte[] { 21, -70, -83, -85, -72, -72, 105,
-85, 92, 91, 105, 107,
- 10, -83, -9, 62, 10 }, globalSubrIndex.get(12)), //
+ assertArrayEquals(new byte[] { 21, -70, -83, -85, -72, -72, 105, -85,
92, 91, 105, 107,
+ 10, -83, -9, 62, 10 }, globalSubrIndex.get(12), //
"Other global subr index values than expected");
- assertTrue(
- Arrays.equals(new byte[] { 58, 122, 29, -5, 48, 6, 11 },
globalSubrIndex.get(120)), //
+ assertArrayEquals(new byte[] { 58, 122, 29, -5, 48, 6, 11 },
globalSubrIndex.get(120), //
"Other global subr index values than expected");
- assertTrue(
- Arrays.equals(new byte[] { 68, 80, 29, -45, -9, 16, -8, -92,
119, 11 },
- globalSubrIndex.get(253)), //
+ assertArrayEquals(new byte[] { 68, 80, 29, -45, -9, 16, -8, -92, 119,
11 },
+ globalSubrIndex.get(253), //
"Other global subr index values than expected");
}
Modified:
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/pfb/PfbParserTest.java
==============================================================================
---
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/pfb/PfbParserTest.java
Tue Nov 25 12:10:03 2025 (r1929974)
+++
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/pfb/PfbParserTest.java
Tue Nov 25 12:40:38 2025 (r1929975)
@@ -50,11 +50,11 @@ class PfbParserTest
Assertions.assertEquals("Open Sans Regular", font.getFullName());
Assertions.assertEquals("Open Sans", font.getFamilyName());
Assertions.assertEquals("Digitized data copyright (c) 2010-2011,
Google Corporation.", font.getNotice());
- Assertions.assertEquals(false, font.isFixedPitch());
- Assertions.assertEquals(false, font.isForceBold());
+ Assertions.assertFalse(font.isFixedPitch());
+ Assertions.assertFalse(font.isForceBold());
Assertions.assertEquals(0, font.getItalicAngle());
Assertions.assertEquals("Book", font.getWeight());
- Assertions.assertTrue(font.getEncoding() instanceof BuiltInEncoding);
+ Assertions.assertInstanceOf(BuiltInEncoding.class, font.getEncoding());
Assertions.assertEquals(4498, font.getASCIISegment().length);
Assertions.assertEquals(95911, font.getBinarySegment().length);
Assertions.assertEquals(938, font.getCharStringsDict().size());
@@ -83,11 +83,11 @@ class PfbParserTest
Assertions.assertEquals("DejaVu Serif Condensed", font.getFullName());
Assertions.assertEquals("DejaVu Serif Condensed",
font.getFamilyName());
Assertions.assertEquals("Copyright [c] 2003 by Bitstream, Inc. All
Rights Reserved.", font.getNotice());
- Assertions.assertEquals(false, font.isFixedPitch());
- Assertions.assertEquals(false, font.isForceBold());
+ Assertions.assertFalse(font.isFixedPitch());
+ Assertions.assertFalse(font.isForceBold());
Assertions.assertEquals(0, font.getItalicAngle());
Assertions.assertEquals("Book", font.getWeight());
- Assertions.assertTrue(font.getEncoding() instanceof BuiltInEncoding);
+ Assertions.assertInstanceOf(BuiltInEncoding.class, font.getEncoding());
Assertions.assertEquals(5959, font.getASCIISegment().length);
Assertions.assertEquals(1056090, font.getBinarySegment().length);
Assertions.assertEquals(3399, font.getCharStringsDict().size());
Modified:
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFCloneUtilityTest.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFCloneUtilityTest.java
Tue Nov 25 12:10:03 2025 (r1929974)
+++
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFCloneUtilityTest.java
Tue Nov 25 12:40:38 2025 (r1929975)
@@ -16,7 +16,7 @@
package org.apache.pdfbox.multipdf;
import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
import java.awt.Color;
import java.io.ByteArrayOutputStream;
@@ -156,11 +156,11 @@ class PDFCloneUtilityTest
{
PDFMergerUtility merger = new PDFMergerUtility();
// The OCProperties is a direct object here, but gets saved as
an indirect object.
-
assertTrue(doc1.getDocumentCatalog().getCOSObject().getItem(COSName.OCPROPERTIES)
instanceof COSDictionary);
-
assertTrue(doc2.getDocumentCatalog().getCOSObject().getItem(COSName.OCPROPERTIES)
instanceof COSObject);
+ assertInstanceOf(COSDictionary.class,
doc1.getDocumentCatalog().getCOSObject().getItem(COSName.OCPROPERTIES));
+ assertInstanceOf(COSObject.class,
doc2.getDocumentCatalog().getCOSObject().getItem(COSName.OCPROPERTIES));
merger.appendDocument(doc2, doc1);
assertEquals(2, doc2.getNumberOfPages());
}
}
}
-}
\ No newline at end of file
+}
Modified:
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/annotation/AppearanceGenerationTest.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/annotation/AppearanceGenerationTest.java
Tue Nov 25 12:10:03 2025 (r1929974)
+++
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/annotation/AppearanceGenerationTest.java
Tue Nov 25 12:40:38 2025 (r1929975)
@@ -68,10 +68,7 @@ class AppearanceGenerationTest
// values.
// TODO: revisit that number as our code improves
private static final float DELTA = 3e-3f;
-
- // the location of the annotation
- static PDRectangle rectangle;
-
+
private PDDocument document;
private static final File IN_DIR = new
File("src/test/resources/org/apache/pdfbox/pdmodel/interactive/annotation");
@@ -123,7 +120,8 @@ class AppearanceGenerationTest
assertEquals(((Operator) tokenForOriginal).getName(),
((Operator) tokenForPdfbox).getName(),
"The operator generated by PDFBox should be the same
Operator");
- } else if (tokenForOriginal instanceof COSFloat)
+ }
+ else if (tokenForOriginal instanceof COSFloat)
{
assertTrue(
Math.abs(((COSFloat) tokenForOriginal).floatValue()
Modified:
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/ControlCharacterTest.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/ControlCharacterTest.java
Tue Nov 25 12:10:03 2025 (r1929974)
+++
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/ControlCharacterTest.java
Tue Nov 25 12:40:38 2025 (r1929975)
@@ -78,7 +78,7 @@ class ControlCharacterTest
}
@Test
- void characterNUL() throws IOException
+ void characterNUL()
{
PDField field = acroForm.getField("pdfbox-nul");
assertThrows(IllegalArgumentException.class, () ->
field.setValue("NUL\0NUL"));
@@ -132,8 +132,7 @@ class ControlCharacterTest
private List<String> getStringsFromStream(PDField field) throws IOException
{
PDAnnotationWidget widget = field.getWidgets().get(0);
- PDFStreamParser parser = new PDFStreamParser(
- widget.getNormalAppearanceStream());
+ PDFStreamParser parser = new
PDFStreamParser(widget.getNormalAppearanceStream());
List<Object> tokens = parser.parse();
Modified:
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroFormTest.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroFormTest.java
Tue Nov 25 12:10:03 2025 (r1929974)
+++
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroFormTest.java
Tue Nov 25 12:40:38 2025 (r1929975)
@@ -18,6 +18,7 @@ package org.apache.pdfbox.pdmodel.intera
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -342,8 +343,8 @@ class PDAcroFormTest
assertNotNull(helv);
assertNotNull(zadb);
// make sure that font wasn't overwritten
- assertTrue(helv instanceof PDType1Font);
- assertTrue(zadb instanceof PDType1Font);
+ assertInstanceOf(PDType1Font.class, helv);
+ assertInstanceOf(PDType1Font.class, zadb);
PDType1Font helvType1 = (PDType1Font) helv;
PDType1Font zadbType1 = (PDType1Font) zadb;
assertEquals(FontName.HELVETICA.getName(), helv.getName());