package dk.kb.yggdrasil.db; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.File; import java.io.IOException; import java.util.List; import org.apache.commons.io.FileUtils; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import dk.kb.yggdrasil.config.YggdrasilConfig; import dk.kb.yggdrasil.exceptions.YggdrasilException; import dk.kb.yggdrasil.json.preservation.PreservationRequest; import dk.kb.yggdrasil.preservation.PreservationState; @RunWith(JUnit4.class) public class StateDatabaseTest { private static File generalConfigFile = new File("config/yggdrasil.yml"); @Test public void test() throws YggdrasilException, IOException { YggdrasilConfig config = new YggdrasilConfig(generalConfigFile); FileUtils.deleteDirectory(config.getDatabaseDir()); StateDatabase sd = new StateDatabase(config.getDatabaseDir()); PreservationRequest pr = new PreservationRequest(); String UUID_sample = "sample_uuid"; pr.UUID = UUID_sample; pr.File_UUID = "dasdasdsdasd"; PreservationRequestState prs = new PreservationRequestState(pr, PreservationState.PRESERVATION_PACKAGE_COMPLETE, UUID_sample); sd.putPreservationRecord(UUID_sample, prs); assertTrue(sd.hasPreservationEntry(UUID_sample)); sd.cleanup(); } @Test public void testGet() throws YggdrasilException, IOException { YggdrasilConfig config = new YggdrasilConfig(generalConfigFile); FileUtils.deleteDirectory(config.getDatabaseDir()); StateDatabase sd = new StateDatabase(config.getDatabaseDir()); PreservationRequest pr = new PreservationRequest(); String UUID_sample = "sample_uuid"; pr.UUID = UUID_sample; pr.File_UUID = "dasdasdsdasd"; pr.metadata = "Some technical metadata"; PreservationRequestState prs = new PreservationRequestState(pr, PreservationState.PRESERVATION_REQUEST_RECEIVED, UUID_sample); sd.putPreservationRecord(UUID_sample, prs); PreservationRequestState df = sd.getPreservationRecord(UUID_sample); assertEquals("dasdasdsdasd", df.getRequest().File_UUID); assertEquals("Some technical metadata", df.getRequest().metadata); sd.delete(UUID_sample); sd.cleanup(); } @Test public void testGetOutstanding() throws YggdrasilException, IOException { YggdrasilConfig config = new YggdrasilConfig(generalConfigFile); FileUtils.deleteDirectory(config.getDatabaseDir()); StateDatabase sd = new StateDatabase(config.getDatabaseDir()); PreservationRequest pr = new PreservationRequest(); pr.File_UUID = "dasdasdsdasd"; String UUID_sample = "sample_uuid"; pr.UUID = UUID_sample; PreservationRequestState prs = new PreservationRequestState(pr, PreservationState.PRESERVATION_PACKAGE_UPLOAD_SUCCESS, UUID_sample); sd.putPreservationRecord(UUID_sample, prs); List<String> list = sd.getOutstandingUUIDS(); assertTrue("Should have one entry, but has " + list.size(), list.size() == 1); String df = list.get(0); assertEquals(UUID_sample, df); sd.cleanup(); } }