package gov.loc.repository.bagit.verify;
import java.io.File;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.junit.Before;
import org.junit.Test;
import gov.loc.repository.bagit.domain.Bag;
import gov.loc.repository.bagit.exceptions.FileNotInManifestException;
import gov.loc.repository.bagit.exceptions.FileNotInPayloadDirectoryException;
import gov.loc.repository.bagit.hash.StandardBagitAlgorithmNameToSupportedAlgorithmMapping;
import gov.loc.repository.bagit.reader.BagReader;
public class PayloadVerifierTest {
private Path rootDir = Paths.get(new File("src/test/resources/bags/v0_97/bag").toURI());
private BagReader reader = new BagReader();
private PayloadVerifier sut;
@Before
public void setup(){
sut = new PayloadVerifier(new StandardBagitAlgorithmNameToSupportedAlgorithmMapping());
}
@Test(expected=FileNotInPayloadDirectoryException.class)
public void testErrorWhenManifestListFileThatDoesntExist() throws Exception{
rootDir = Paths.get(new File("src/test/resources/filesInManifestDontExist").toURI());
Bag bag = reader.read(rootDir);
sut.verifyPayload(bag, true);
}
@Test(expected=FileNotInManifestException.class)
public void testErrorWhenFileIsntInManifest() throws Exception{
rootDir = Paths.get(new File("src/test/resources/filesInPayloadDirAreNotInManifest").toURI());
Bag bag = reader.read(rootDir);
sut.verifyPayload(bag, true);
}
@Test
public void testBagWithTagFilesInPayloadIsValid() throws Exception{
rootDir = Paths.get(new File("src/test/resources/bags/v0_96/bag-with-tagfiles-in-payload-manifest").toURI());
Bag bag = reader.read(rootDir);
sut.verifyPayload(bag, true);
}
@Test(expected=FileNotInManifestException.class)
public void testNotALlFilesListedInAllManifestsThrowsException() throws Exception{
Path bagDir = Paths.get(new File("src/test/resources/notAllFilesListedInAllManifestsBag").toURI());
Bag bag = reader.read(bagDir);
sut.verifyPayload(bag, true);
}
}