4.16. XMP-Daten vergleichen

Auch die XMP-Daten zweier PDF-Dokumente werden auf XPath-Basis miteinander verglichen. Die Implementierungen der XMP- und XFA-Testmethoden sind gleich und damit auch die Schnittstelle. Weil das vorhergehende Kapitel 3.36: „XFA Daten“ die Tests schon ausführlich beschreibt, soll hier nur noch ein Beispiel für XMP-Tests gezeigt werden.

Im Zweifelsfall können XMP-Daten mit dem Hilfsprogramm ExtractXMPData in eine Datei exportiert und dort analysiert werden. Siehe Kapitel 9.14: „XMP-Daten nach XML extrahieren“.

Übersicht

Folgende Methode steht zur Verfügung:

// Method for tests with XMP data:

.haveSameXMPData().matchingXPath(XPathExpression)

Beispiel

@Test
public void haveSameXMPData() throws Exception {
  String filenameTest = "documentUnderTest.pdf";
  String filenameReference = "reference.pdf";
  XPathExpression expression = new XPathExpression("//pdf:Producer");
  
  AssertThat.document(filenameTest)
            .and(filenameReference) 
            .haveSameXMPData()
            .matchingXPath(expression)
  ;
}

Werden zwei Dokumente verglichen, die beide keine XMP-Daten enthalten, wirft PDFUnit eine Exception. Dieses Verhalten ist sicherlich diskussionswürdig, jedoch macht es keinen Sinn, etwas auf Gleichheit zu vergleichen, das nicht existiert. Ein solcher Test kann ersatzlos gelöscht werden.