@Test
  public void getContentInputStreamFromArchive() throws Exception {
    XWikiDocument document = mock(XWikiDocument.class);
    when(document.getDocumentReference())
        .thenReturn(new DocumentReference("wiki", "Space", "Page"));

    when(this.oldcore
            .getXWikiContext()
            .getWiki()
            .getDocument(document.getDocumentReference(), this.oldcore.getXWikiContext()))
        .thenReturn(document);

    XWikiAttachment attachment = new XWikiAttachment(document, "file.txt");
    attachment.setVersion("3.5");

    XWikiAttachment newAttachment = new XWikiAttachment(document, attachment.getFilename());
    newAttachment.setVersion("5.1");
    when(document.getAttachment(attachment.getFilename())).thenReturn(newAttachment);

    XWikiAttachmentContent content = mock(XWikiAttachmentContent.class);
    when(content.getContentInputStream()).thenReturn(mock(InputStream.class));

    XWikiAttachment archivedAttachment = new XWikiAttachment(document, attachment.getFilename());
    archivedAttachment.setAttachment_content(content);

    XWikiAttachmentArchive archive = mock(XWikiAttachmentArchive.class);
    when(archive.getRevision(attachment, attachment.getVersion(), this.oldcore.getXWikiContext()))
        .thenReturn(archivedAttachment);

    AttachmentVersioningStore store = mock(AttachmentVersioningStore.class);
    when(this.oldcore.getXWikiContext().getWiki().getAttachmentVersioningStore()).thenReturn(store);
    when(store.loadArchive(attachment, this.oldcore.getXWikiContext(), true)).thenReturn(archive);

    assertSame(
        content.getContentInputStream(),
        attachment.getContentInputStream(this.oldcore.getXWikiContext()));
  }
  /**
   * Unit test for <a href="http://jira.xwiki.org/browse/XWIKI-9075">XWIKI-9075</a> to prove that
   * calling {@code fromXML} doesn't set the metadata dirty flag.
   *
   * <p>Note: I think there's a bug in that fromXML should return a new instance of XWikiAttachment
   * and not modify the current one as this would mean changing its identity...
   */
  @Test
  public void fromXML() throws Exception {
    XWikiAttachment attachment = new XWikiAttachment();
    attachment.fromXML(
        "<attachment>\n"
            + "<filename>XWikiLogo.png</filename>\n"
            + "<filesize>1390</filesize>\n"
            + "<mimetype>image/png2</mimetype>\n"
            + "<author>xwiki:XWiki.Admin</author>\n"
            + "<date>1252454400000</date>\n"
            + "<version>1.1</version>\n"
            + "<comment/>\n"
            + "<content>MDEyMzQ1Njc4OQ==</content>\n"
            + "</attachment>");

    assertEquals("XWikiLogo.png", attachment.getFilename());
    assertEquals(new Date(1252454400000L), attachment.getDate());
    assertEquals("1.1", attachment.getVersion());
    assertEquals("0123456789", IOUtils.toString(attachment.getContentInputStream(null)));
    assertEquals("image/png2", attachment.getMimeType());
    assertEquals("image/png2", attachment.getMimeType(null));

    assertFalse(attachment.isMetaDataDirty());
  }