Der erste Test vergleicht die Anzahl der Bilder eines PDF-Dokumentes miteinander:
@Test public void haveSameNumberOfImages() throws Exception { String filenameTest = "documentUnderTest.pdf"; String filenameReference = "reference.pdf"; AssertThat.document(filenameTest) .and(filenameReference) .haveSameNumberOfImages() ; }
Der Vergleich der Anzahl der Bilder kann auf ausgewählte Seiten eingeschränkt werden:
@Test public void haveSameNumberOfImages_OnPage2() throws Exception { String filenameTest = "documentUnderTest.pdf"; String filenameReference = "reference.pdf"; PagesToUse page2 = PagesToUse.getPage(2); AssertThat.document(filenameTest) .and(filenameReference) .restrictedTo(page2) .haveSameNumberOfImages() ; }
Die Möglichkeiten der Seitenauswahl sind in Kapitel 13.2: „Seitenauswahl“ beschrieben.
Die in einem Dokument enthaltenen Bilder können mit denen eines Referenz-Dokumentes verglichen werden. Bilder zweier Dokumente gelten als gleich, wenn sie Byte-weise identisch sind:
/** * The method haveSameImages() does not consider the order of the images. */ @Test public void haveSameImages() throws Exception { String filenameTest = "documentUnderTest.pdf"; String filenameReference = "reference.pdf"; AssertThat.document(filenameTest) .and(filenameReference) .haveSameImages() ; }
Bei diesem Vergleich bleibt unberücksichtigt, auf welchen Seiten die Bilder vorkommen, und auch, wie häufig ein Bild im Dokument verwendet wird.
Wenn aber Bilder auf bestimmten Seiten gleich sein sollen, müssen die Seiten zuvor eingeschränkt werden:
@Test public void haveSameImages_OnPage2() throws Exception { String filenameTest = "documentUnderTest.pdf"; String filenameReference = "reference.pdf"; PagesToUse page2 = PagesToUse.getPage(2); AssertThat.document(filenameTest) .and(filenameReference) .restrictedTo(page2) .haveSameImages() ; }
@Test public void haveSameImages_BeforePage2() throws Exception { String filenameTest = "documentUnderTest.pdf"; String filenameReference = "reference.pdf"; PagesToUse pagesBefore2 = ON_EVERY_PAGE.before(2); AssertThat.document(filenameTest) .and(filenameReference) .restrictedTo(pagesBefore2) .haveSameImages() ; }
Bei etwaigen Unklarheiten über die im PDF enthaltenen Bilder können alle
Bilder eines PDF-Dokumentes mit dem Hilfsprogramm ExtractImages
extrahiert werden.
Siehe Kapitel 9.3: „Bilder aus PDF extrahieren“.