Author: tilman
Date: Wed Aug 20 08:48:57 2025
New Revision: 1927907

Log:
PDFBOX-5660: improve test coverage

Modified:
   
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java
==============================================================================
--- 
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java
 Wed Aug 20 08:48:53 2025        (r1927906)
+++ 
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java
 Wed Aug 20 08:48:57 2025        (r1927907)
@@ -19,6 +19,7 @@ package org.apache.pdfbox.pdmodel.docume
 import java.io.File;
 import java.io.IOException;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import org.apache.pdfbox.cos.COSArray;
@@ -27,10 +28,12 @@ import org.apache.pdfbox.cos.COSDictiona
 import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.cos.COSObject;
 import org.apache.pdfbox.pdmodel.PDDocument;
-import org.junit.Assert;
+import 
org.apache.pdfbox.pdmodel.documentinterchange.markedcontent.PDMarkedContent;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import org.junit.Test;
 
 /**
@@ -57,7 +60,7 @@ public class PDStructureElementTest
         doc.close();
 
         // collect attributes and check their count.
-        Assert.assertEquals(117, attributeSet.size());
+        assertEquals(117, attributeSet.size());
         int cnt = 0;
         for (Revisions<PDAttributeObject> attributes : attributeSet)
         {
@@ -155,6 +158,15 @@ public class PDStructureElementTest
         assertEquals(33, structureElement.getRevisionNumber());
         structureElement.incrementRevisionNumber();
         assertEquals(34, structureElement.getRevisionNumber());
+        try
+        {
+            structureElement.setRevisionNumber(-1);
+            fail("Should have thrown IllegalArgumentException");
+        }
+        catch (IllegalArgumentException ex)
+        {
+            // ok
+        }
         structureElement.setTitle("Title");
         assertEquals("Title", structureElement.getTitle());
         structureElement.setLanguage("Klingon");
@@ -165,5 +177,41 @@ public class PDStructureElementTest
         assertEquals("Actual", structureElement.getActualText());
         structureElement.setExpandedForm("ExpF");
         assertEquals("ExpF", structureElement.getExpandedForm());
+        try
+        {
+            structureElement.appendKid(-1);
+            fail("Should have thrown IllegalArgumentException");
+        }
+        catch (IllegalArgumentException ex)
+        {
+            // ok
+        }
+        structureElement.appendKid(0);
+        PDMarkedContentReference mcr1 = new PDMarkedContentReference();
+        mcr1.setMCID(1);
+        structureElement.appendKid(mcr1);
+        PDMarkedContentReference mcr2 = new PDMarkedContentReference();
+        mcr2.setMCID(2);
+        PDMarkedContent mc2 = PDMarkedContent.create(COSName.S, 
mcr2.getCOSObject());
+        structureElement.appendKid(mc2);
+        PDMarkedContentReference mcrSubZero = new PDMarkedContentReference();
+        mcrSubZero.setMCID(-1); //TODO should fail
+        PDMarkedContent mcSubZero = PDMarkedContent.create(COSName.S, 
mcrSubZero.getCOSObject());
+        try
+        {
+            structureElement.appendKid(mcSubZero);
+            fail("Should have thrown IllegalArgumentException");
+        }
+        catch (IllegalArgumentException ex)
+        {
+            // ok
+        }
+        List<Object> kids = structureElement.getKids();
+        assertEquals(3, kids.size());
+        assertEquals(0, kids.get(0));
+        mcr1 = (PDMarkedContentReference) kids.get(1);
+        assertEquals(PDMarkedContentReference.TYPE, 
mcr1.getCOSObject().getNameAsString(COSName.TYPE));
+        assertEquals(1, mcr1.getMCID());
+        assertEquals(2, kids.get(2));
     }
 }

Reply via email to