package org.archive.wayback.util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import junit.framework.TestCase;
public class MonitoredFileSetTest extends TestCase {
public void testIsChanged() throws IOException, InterruptedException {
File f1 = new File(System.getProperty("java.io.tmpdir"), "file-set-1.tmp");
File f2 = new File(System.getProperty("java.io.tmpdir"), "file-set-2.tmp");
writeFile(f1,"one");
writeFile(f2,"two");
ArrayList<String> l = new ArrayList<String>();
l.add(f1.getAbsolutePath());
l.add(f2.getAbsolutePath());
MonitoredFileSet fs = new MonitoredFileSet(l);
MonitoredFileSet.FileState s1 = fs.getFileState();
MonitoredFileSet.FileState s2 = fs.getFileState();
assertFalse(fs.isChanged(s1));
assertFalse(fs.isChanged(s2));
Thread.sleep(1001);
writeFile(f2,"two2");
MonitoredFileSet.FileState s3 = fs.getFileState();
assertTrue(fs.isChanged(s2));
assertTrue(s3.isChanged(s2));
Thread.sleep(1001);
assertTrue(fs.isChanged(s2));
assertFalse(fs.isChanged(s3));
}
private void writeFile(File f, String stuff) throws IOException {
if(f.exists()) {
f.delete();
}
FileOutputStream fos = new FileOutputStream(f,false);
fos.write(stuff.getBytes());
fos.close();
}
}