/******************************************************************************
* Copyright (C) 2013 Fabio Zadrozny
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Fabio Zadrozny <fabiofz@gmail.com> - initial API and implementation
******************************************************************************/
package org.python.pydev.shared_core.io;
import java.io.File;
import java.io.FileFilter;
import junit.framework.TestCase;
public class FileUtilsTest extends TestCase {
private File baseDir;
@Override
protected void setUp() throws Exception {
baseDir = new File(FileUtils.getFileAbsolutePath(new File("FileUtilsTest.temporary_dir")));
try {
FileUtils.deleteDirectoryTree(baseDir);
} catch (Exception e) {
//ignore
}
if (baseDir.exists()) {
throw new AssertionError("Not expecting: " + baseDir + " to exist.");
}
}
@Override
protected void tearDown() throws Exception {
try {
FileUtils.deleteDirectoryTree(baseDir);
} catch (Exception e) {
//ignore
}
}
public void testGetLastModifiedTime() throws Exception {
baseDir.mkdir();
File dir1 = new File(baseDir, "dir1");
dir1.mkdir();
File dir2 = new File(baseDir, "dir2");
dir2.mkdir();
File f1 = new File(dir1, "f1.py");
FileUtils.writeStrToFile("test", f1);
synchronized (this) {
this.wait(50);
}
File f1a = new File(dir1, "f1a.txt");
FileUtils.writeStrToFile("test", f1);
synchronized (this) {
this.wait(50);
}
File f2 = new File(dir2, "f2.txt");
FileUtils.writeStrToFile("test", f2);
FileFilter acceptAll = new FileFilter() {
@Override
public boolean accept(File pathname) {
return true;
}
};
FileFilter acceptOnlyDir1 = new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().equals("dir1");
}
};
FileFilter acceptOnlyPy = new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".py");
}
};
FileFilter acceptOnlyTxt = new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".txt");
}
};
assertTrue(FileUtils.lastModified(f1) != FileUtils.lastModified(f2)); //if equal, this would invalidate the test!
assertTrue(FileUtils.lastModified(f1a) != FileUtils.lastModified(f1)); //if equal, this would invalidate the test!
assertTrue(FileUtils.lastModified(f1a) != FileUtils.lastModified(f2)); //if equal, this would invalidate the test!
long lastModifiedTimeFromDir = FileUtils.getLastModifiedTimeFromDir(baseDir, acceptAll, acceptAll, 1000);
assertEquals(lastModifiedTimeFromDir, FileUtils.lastModified(f2));
lastModifiedTimeFromDir = FileUtils.getLastModifiedTimeFromDir(baseDir, acceptAll, acceptAll, 1);
assertEquals(lastModifiedTimeFromDir, 0);
lastModifiedTimeFromDir = FileUtils.getLastModifiedTimeFromDir(baseDir, acceptAll, acceptAll, 2);
assertEquals(lastModifiedTimeFromDir, FileUtils.lastModified(f2));
lastModifiedTimeFromDir = FileUtils.getLastModifiedTimeFromDir(baseDir, acceptAll, acceptOnlyDir1, 2);
assertEquals(lastModifiedTimeFromDir, FileUtils.lastModified(f1));
lastModifiedTimeFromDir = FileUtils.getLastModifiedTimeFromDir(baseDir, acceptOnlyPy, acceptAll, 2);
assertEquals(lastModifiedTimeFromDir, FileUtils.lastModified(f1));
lastModifiedTimeFromDir = FileUtils.getLastModifiedTimeFromDir(baseDir, acceptOnlyTxt, acceptOnlyDir1, 2);
assertEquals(lastModifiedTimeFromDir, FileUtils.lastModified(f1a));
}
}