4.2. Anhänge (Attachments) vergleichen

Anzahl

Wenn es um die Anzahl der eingebetteten Dateien geht, sieht ein Vergleich so aus:

@Test
public void haveSameNumberOfEmbeddedFiles() throws Exception {
  String filenameTest = "documentUnderTest.pdf";
  String filenameReference = "reference.pdf";
  
  AssertThat.document(filenameTest)
            .and(filenameReference)
            .haveSameNumberOfEmbeddedFiles()
  ;
}

Namen und Inhalte

Für einen Vergleich der eingebetteten Dateien nach Name oder Inhalt gibt es eine parametrierte Testmethode:

@Test
public void haveSameEmbeddedFiles() throws Exception {
  String filenameTest = "documentUnderTest.pdf";
  String filenameReference = "reference.pdf";
  
  AssertThat.document(filenameTest)
            .and(filenameReference) 
            .haveSameEmbeddedFiles(COMPARED_BY_NAME)
            .haveSameEmbeddedFiles(COMPARED_BY_CONTENT)  1
  ;
}

1

Die Dateien werden Byte-weise verglichen, sodass Dateien jeglicher Art verglichen werden können.

Die beiden Konstanten sind in der allgemeinen Klasse com.pdfunit.Constants definiert:

// Constants defining the kind comparing embedded files:

com.pdfunit.Constants.COMPARED_BY_CONTENT
com.pdfunit.Constants.COMPARED_BY_NAME

Eingebettete Dateien können mit dem Hilfsprogramm ExtractEmbeddedFiles extrahiert werden. Siehe Kapitel 9.2: „Anhänge extrahieren“.