4.14. Text vergleichen

Sie können Texte auf beliebigen Seiten zweier PDF-Dokumente vergleichen. Das folgende Beispiel überprüft, dass der Text auf der ersten bzw. letzten Seite zweier Test-Dokumente übereinstimmt. Whitespaces werden dabei normalisiert:

@Test
public void haveSameText_OnSinglePage() throws Exception {
  String filenameTest = "documentUnderTest.pdf";
  String filenameReference = "reference.pdf";

  AssertThat.document(filenameTest)
            .and(filenameReference)
            .restrictedTo(FIRST_PAGE)
            .haveSameText()
  ;

  AssertThat.document(filenameTest)
            .and(filenameReference)
            .restrictedTo(LAST_PAGE)
            .haveSameText()
  ;
}

Ein Vergleich kann auf individuelle Seiten beschränkt werden. Alle Möglichkeiten, Seiten auszuwählen, werden in Kapitel 13.2: „Seitenauswahl“ beschrieben:

Zusätzlich kann der Textvergleich noch auf Seitenausschnitte beschränkt werden:

@Test
public void haveSameText_InPageRegion() throws Exception {
  String filenameTest = "documentUnderTest.pdf";
  String filenameReference = "reference.pdf";

  int leftX   =  17;
  int upperY  = 254;
  int width   =  53;
  int height  =  11; 
  PageRegion region = new PageRegion(leftX, upperY, width, height);

  AssertThat.document(filenameTest)
            .and(filenameReference)
            .restrictedTo(EVERY_PAGE)
            .restrictedTo(region)
            .haveSameText()
  ;
}

Und wie bei anderen Tests auch, kann bei einem Textvergleich die Behandlung von Whitespaces gesteuert werden:

@Test
public void haveSameText_IgnoreWhitespace() throws Exception {
  String filenameTest = "documentUnderTest.pdf";
  String filenameReference = "reference.pdf";
  
  int leftX   =  17;
  int upperY  = 254;
  int width   =  53;
  int height  =  11; 
  PageRegion region = new PageRegion(leftX, upperY, width, height);

  AssertThat.document(filenameTest)
            .and(filenameReference)
            .restrictedTo(FIRST_PAGE)
            .restrictedTo(region)
            .haveSameText(WhitespaceProcessing.IGNORE)
  ;
}