Ejemplo n.º 1
0
  @Test
  public void testAddDatastreamWithChecksum() throws Exception {
    String pid = "demo:m_ds_test_add";
    String checksumType = "MD5";
    apim.ingest(getAtomObject(pid, null), ATOM1_1.uri, null);
    File temp = null;

    try {
      temp = File.createTempFile("foo", "bar");
      String contentLocation = getFedoraClient().uploadFile(temp);
      String checksum = computeChecksum(checksumType, new FileInputStream(temp));
      String dsId = addDatastream(pid, contentLocation, checksumType, checksum);
      assertEquals("DS", dsId);

      // Now ensure that bogus checksums do indeed fail
      apim.purgeDatastream(pid, dsId, null, null, null, false);
      checksum = "bogus";
      try {
        addDatastream(pid, contentLocation, checksumType, checksum);
        fail("Adding datastream with bogus checksum should have failed.");
      } catch (RemoteException e) {
        assertTrue(e.getMessage().contains("Checksum Mismatch"));
      }
    } finally {
      apim.purgeObject(pid, "test", false);
      if (temp != null) {
        temp.delete();
      }
    }
  }