package cgeo.geocaching.utils;
import cgeo.geocaching.storage.LocalStorage;
import java.io.File;
import java.io.IOException;
import junit.framework.TestCase;
import static org.assertj.core.api.Java6Assertions.assertThat;
public class FileUtilsTest extends TestCase {
final File testDir = LocalStorage.getGeocacheDataDirectory("automated-tests");
public void testGetUniqueNamedFile() throws IOException {
FileUtils.deleteDirectory(testDir);
assertThat(testDir.mkdirs()).isTrue();
try {
final File baseFile = new File(testDir, "prefix.ext");
final File alternative1 = new File(testDir, "prefix_2.ext");
final File alternative2 = new File(testDir, "prefix_3.ext");
assertThat(FileUtils.getUniqueNamedFile(baseFile)).isEqualTo(baseFile);
assertThat(baseFile.createNewFile()).isTrue();
assertThat(FileUtils.getUniqueNamedFile(baseFile)).isEqualTo(alternative1);
assertThat(alternative1.createNewFile()).isTrue();
assertThat(FileUtils.getUniqueNamedFile(baseFile)).isEqualTo(alternative2);
assertThat(FileUtils.getUniqueNamedFile(baseFile)).isEqualTo(alternative2);
} finally {
FileUtils.deleteDirectory(testDir);
}
}
public static void testFileUrl() {
assertThat(FileUtils.isFileUrl("file:///tmp/foo/bar")).isTrue();
assertThat(FileUtils.isFileUrl("http://www.google.com")).isFalse();
assertThat(FileUtils.fileToUrl(new File("/tmp/foo/bar"))).isEqualTo("file:///tmp/foo/bar");
assertThat(FileUtils.urlToFile("file:///tmp/foo/bar").getPath()).isEqualTo("/tmp/foo/bar");
}
public void testCreateRemoveDirectories() {
FileUtils.deleteDirectory(testDir);
assertThat(testDir).doesNotExist();
FileUtils.mkdirs(testDir);
assertThat(testDir).exists();
FileUtils.deleteDirectory(testDir);
assertThat(testDir).doesNotExist();
}
public static void testGetExtension() {
assertThat(FileUtils.getExtension("foo/bar/xyzzy")).isEqualTo("");
assertThat(FileUtils.getExtension("foo/bar/xyzzy.jpg")).isEqualTo(".jpg");
assertThat(FileUtils.getExtension("foo/bar/xyzzy.jpeg")).isEqualTo(".jpeg");
assertThat(FileUtils.getExtension("foo/bar/xyzzy.mjpeg")).isEqualTo("");
}
}