001/** 002 * The contents of this file are subject to the license and copyright 003 * detailed in the LICENSE and NOTICE files at the root of the source 004 * tree. 005 * 006 */ 007package org.fcrepo.migration.pidlist; 008 009import org.junit.After; 010import org.junit.Assert; 011import org.junit.Before; 012import org.junit.Test; 013 014import java.io.File; 015import java.util.Arrays; 016import java.util.List; 017 018/** 019 * Unit test class for ResumePidListManager 020 * 021 * @author awoods 022 * @since 2019-11-08 023 */ 024public class ResumePidListManagerTest { 025 026 private ResumePidListManager manager; 027 private final String testDir = System.getProperty("test.output.dir"); 028 029 private List<String> pidList; 030 031 @Before 032 public void setUp() { 033 // Test PIDs 034 pidList = Arrays.asList("pid:1", "pid:2", "pid:3", "pid:4"); 035 036 System.out.println("test dir: " + testDir); 037 038 // Define directory in which to find resume-file. 039 manager = new ResumePidListManager(new File(testDir), false); 040 } 041 042 @After 043 public void tearDown() { 044 manager.reset(); 045 } 046 047 @Test 048 public void accept() { 049 pidList.forEach(pid -> Assert.assertTrue(pid + " should be accepted", manager.accept(pid))); 050 } 051 052 @Test 053 public void acceptIncrementalRuns() { 054 Assert.assertTrue("pid:1 should be accepted", manager.accept("pid:1")); 055 Assert.assertTrue("pid:2 should be accepted", manager.accept("pid:2")); 056 057 // Simulate stopping the migration process... and start over 058 manager = new ResumePidListManager(new File(testDir), false); 059 Assert.assertFalse("pid:1 should NOT be accepted", manager.accept("pid:1")); 060 Assert.assertFalse("pid:2 should NOT be accepted", manager.accept("pid:2")); 061 062 // ..however, unprocessed PIDs should be "accepted" 063 Assert.assertTrue("pid:3 should be accepted", manager.accept("pid:3")); 064 Assert.assertTrue("pid:4 should be accepted", manager.accept("pid:4")); 065 066 // Starting over again... no PIDs should be accepted 067 manager = new ResumePidListManager(new File(testDir), false); 068 pidList.forEach(pid -> Assert.assertFalse(pid + " should NOT be accepted", manager.accept(pid))); 069 } 070 071 @Test 072 public void acceptAll() { 073 Assert.assertTrue("pid:1 should be accepted", manager.accept("pid:1")); 074 Assert.assertTrue("pid:2 should be accepted", manager.accept("pid:2")); 075 076 // Simulate stopping the migration process... and start over - but accept all 077 manager = new ResumePidListManager(new File(testDir), true); 078 Assert.assertTrue("pid:1 should be accepted", manager.accept("pid:1")); 079 Assert.assertTrue("pid:2 should be accepted", manager.accept("pid:2")); 080 081 // ..however, unprocessed PIDs should be "accepted" - accept all 082 Assert.assertTrue("pid:3 should be accepted", manager.accept("pid:3")); 083 Assert.assertTrue("pid:4 should be accepted", manager.accept("pid:4")); 084 085 // Starting over again... no PIDs should be accepted - but, accept all 086 manager = new ResumePidListManager(new File(testDir), true); 087 pidList.forEach(pid -> Assert.assertTrue(pid + " should be accepted", manager.accept(pid))); 088 } 089}