@Test
 public void testHasNextRecordForEmptyFile() throws Exception {
   xmlRecordReader.close();
   xmlRecordReader = new XmlRecordReader("person", getDataSource("/empty-file.xml"));
   xmlRecordReader.open();
   assertThat(xmlRecordReader.readRecord()).isNull();
 }
  @Test
  public void testReadNextNestedRecord() throws Exception {
    xmlRecordReader.close();
    xmlRecordReader = new XmlRecordReader("person", getDataSource("/persons-nested.xml"));
    xmlRecordReader.open();
    XmlRecord xmlRecord = xmlRecordReader.readRecord();
    String expectedPayload = getXmlFromFile("/person.xml");
    String actualPayload = xmlRecord.getPayload();

    XMLUnit.setIgnoreWhitespace(true);
    Diff diff = new Diff(expectedPayload, actualPayload);

    assertThat(xmlRecord.getHeader().getNumber()).isEqualTo(1);
    assertThat(diff.similar()).isTrue();
  }
  @Test
  public void testReadingXmlWithCustomNamespace() throws Exception {
    xmlRecordReader.close();
    xmlRecordReader = new XmlRecordReader("bean", getDataSource("/beans.xml"));
    xmlRecordReader.open();

    XmlRecord record = xmlRecordReader.readRecord();
    assertThat(record.getPayload())
        .isXmlEqualTo(
            "<bean id=\"foo\" class=\"java.lang.String\"><description>foo bean</description></bean>");

    record = xmlRecordReader.readRecord();
    assertThat(record.getPayload()).isXmlEqualTo("<bean id=\"bar\" class=\"java.lang.String\"/>");

    record = xmlRecordReader.readRecord();
    assertThat(record).isNull();
  }
  @Test
  public void testReadingEscapedXml() throws Exception {
    xmlRecordReader.close();
    xmlRecordReader = new XmlRecordReader("website", getDataSource("/websites.xml"));
    xmlRecordReader.open();
    XmlRecord record = xmlRecordReader.readRecord();
    assertThat(record.getPayload())
        .isXmlEqualTo(
            "<website name=\"google\" url=\"http://www.google.com?query=test&amp;sort=asc\"/>");

    record = xmlRecordReader.readRecord();
    assertThat(record.getPayload())
        .isXmlEqualTo("<website name=\"l&apos;equipe\" url=\"http://www.lequipe.fr\"/>");

    record = xmlRecordReader.readRecord();
    assertThat(record.getPayload())
        .isXmlEqualTo(
            "<website name=\"l&quot;internaute.com\" url=\"http://www.linternaute.com\"/>");

    record = xmlRecordReader.readRecord();
    assertThat(record).isNull();
  }
 @Before
 public void setUp() throws Exception {
   xmlRecordReader = new XmlRecordReader("person", getDataSource("/persons.xml"));
   xmlRecordReader.open();
 }
 @After
 public void tearDown() throws Exception {
   xmlRecordReader.close();
 }