Author: tilman
Date: Wed Aug 20 08:49:01 2025
New Revision: 1927908

Log:
PDFBOX-5660: improve test coverage

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

Modified: 
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java
        Wed Aug 20 08:48:57 2025        (r1927907)
+++ 
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElementTest.java
        Wed Aug 20 08:49:01 2025        (r1927908)
@@ -18,11 +18,13 @@ package org.apache.pdfbox.pdmodel.docume
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -34,6 +36,8 @@ import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.cos.COSObject;
 import org.apache.pdfbox.io.RandomAccessReadBuffer;
 import org.apache.pdfbox.pdmodel.PDDocument;
+import 
org.apache.pdfbox.pdmodel.documentinterchange.markedcontent.PDMarkedContent;
+
 import org.junit.jupiter.api.Test;
 
 /**
@@ -152,6 +156,7 @@ class PDStructureElementTest
         assertEquals(33, structureElement.getRevisionNumber());
         structureElement.incrementRevisionNumber();
         assertEquals(34, structureElement.getRevisionNumber());
+        assertThrows(IllegalArgumentException.class, () -> 
structureElement.setRevisionNumber(-1));
         structureElement.setTitle("Title");
         assertEquals("Title", structureElement.getTitle());
         structureElement.setLanguage("Klingon");
@@ -162,5 +167,25 @@ class PDStructureElementTest
         assertEquals("Actual", structureElement.getActualText());
         structureElement.setExpandedForm("ExpF");
         assertEquals("ExpF", structureElement.getExpandedForm());
+        assertThrows(IllegalArgumentException.class, () -> 
structureElement.appendKid(-1));
+        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());
+        assertThrows(IllegalArgumentException.class, () -> 
structureElement.appendKid(mcSubZero));
+        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