3.4. Anzahl verschiedener PDF-Bestandteile

Überblick

Nicht nur die Anzahl von Seiten können Testziel sein, auch andere zählbare Teile eines PDF-Dokumentes, wie Formularfelder, Lesezeichen etc. Die folgende Liste zeigt auf, welche Dinge gezählt und damit getestet werden können:

// Test counting parts of a PDF:
.hasNumberOfActions(..)             
.hasNumberOfBookmarks(..)          
.hasNumberOfDifferentImages(..)    1
.hasNumberOfEmbeddedFiles(..) 
.hasNumberOfFields(..)                  
.hasNumberOfFonts(..) 
.hasNumberOfLayers(..) 
.hasNumberOfOCGs(..) 
.hasNumberOfPages(..)              2
.hasNumberOfSignatures(..) 
.hasNumberOfVisibleImages(..)      3

1 3

Prüfungen auf die Anzahl von Bildern werden in Kapitel 3.7: „Bilder in Dokumenten“ beschrieben.

2

Prüfungen auf die Anzahl von Seiten eines PDF-Dokumentes werden in Kapitel 3.25: „Seitenzahlen als Testziel“ beschrieben.

Beispiele

Die Überprüfung der Anzahl von PDF-Teilen ist von der Art der Teile unabhängig. Deshalb werden hier nur zwei Beispiels gezeigt:

@Test
public void hasNumberOfFields() throws Exception {
  String filename = "documentUnderTest.pdf";
  
  AssertThat.document(filename)
            .hasNumberOfFields(4)
  ;
}
@Test 
public void hasNumberOfBookmarks() throws Exception {
  String filename = "documentUnderTest.pdf";
  
  AssertThat.document(filename)
            .hasNumberOfBookmarks(19)
  ; 
}

Alle Prüfungen können verkettet werden:

@Test
public void testHugeDocument_MultipleInvocation() throws Exception {
  String filename = "documentUnderTest.pdf";
  
  AssertThat.document(filename)
            .hasNumberOfPages(1370)
            .hasNumberOfBookmarks(565)
            .hasNumberOfActions(4814)
            .hasNumberOfEmbeddedFiles(0)
  ;
}

Erfreulicherweise dauert dieser Test mit einem Dokument von 1370 Seiten auf einem zeitgemäß ausgerüsteten Entwickler-Notebook nur ca. 2,5 Sekunden.