package org.mapfish.print.config;
import org.junit.Test;
import org.mapfish.print.AbstractMapfishSpringTest;
import org.springframework.beans.factory.annotation.Autowired;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class WorkingDirectoriesTest extends AbstractMapfishSpringTest {
@Autowired
private WorkingDirectories workingDirectories;
@Test
public void testCleanUp() throws IOException {
File workingDir = this.workingDirectories.getWorking();
File reportDir = this.workingDirectories.getReports();
long oldDate = new Date().getTime() - TimeUnit.DAYS.toMillis(1);
// old file, should be deleted
new File(reportDir, "1").createNewFile();
new File(reportDir, "1").setLastModified(oldDate);
// old file, should be deleted
new File(reportDir, "2").createNewFile();
new File(reportDir, "2").setLastModified(oldDate);
// new file, should be kept
new File(reportDir, "3").createNewFile();
// old task dir, should be deleted
File taskDir1 = new File(workingDir, "task-1tmp");
taskDir1.mkdirs();
new File(taskDir1, "123.tmp").createNewFile();
new File(workingDir, "task-1tmp").setLastModified(oldDate);
// new task dir, should be kept
File taskDir2 = new File(workingDir, "task-2tmp");
taskDir2.mkdirs();
new File(taskDir2, "123.tmp").createNewFile();
assertTrue(new File(reportDir, "1").exists());
assertTrue(new File(reportDir, "2").exists());
assertTrue(new File(reportDir, "3").exists());
assertTrue(taskDir1.exists());
assertTrue(taskDir2.exists());
int maxAgeInSeconds = 1000 ;
this.workingDirectories.new CleanUpTask(maxAgeInSeconds, maxAgeInSeconds).run();
assertFalse(new File(reportDir, "1").exists());
assertFalse(new File(reportDir, "2").exists());
assertTrue(new File(reportDir, "3").exists());
assertFalse(taskDir1.exists());
assertTrue(taskDir2.exists());
}
}