/**
* DataCleaner (community edition)
* Copyright (C) 2014 Neopost - Customer Information Management
*
* This copyrighted material is made available to anyone wishing to use, modify,
* copy, or redistribute it subject to the terms and conditions of the GNU
* Lesser General Public License, as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this distribution; if not, write to:
* Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor
* Boston, MA 02110-1301 USA
*/
package org.datacleaner.util;
import java.io.File;
import junit.framework.TestCase;
public class FileResolverTest extends TestCase {
public void testUsingDefaultBaseDir() throws Exception {
final FileResolver fileResolver = new FileResolver(new File("."));
final File file = fileResolver.toFile("pom.xml");
assertNotNull(file);
assertTrue(file.exists());
assertFalse(file.isAbsolute());
assertEquals("pom.xml", normalizeSeparators(file.getPath()));
assertEquals("pom.xml", fileResolver.toPath(file));
final File directory = fileResolver.toFile("src/main");
assertNotNull(directory);
assertTrue(directory.exists());
assertFalse(directory.isAbsolute());
assertEquals("src/main", normalizeSeparators(directory.getPath()));
assertEquals("src/main", fileResolver.toPath(directory));
}
public void testUsingRelativeBaseDir() throws Exception {
final FileResolver fileResolver = new FileResolver(new File(".."));
final File file = fileResolver.toFile("pom.xml");
assertNotNull(file);
assertTrue(file.exists());
assertFalse(file.isAbsolute());
assertEquals("../pom.xml", normalizeSeparators(file.getPath()));
assertEquals("pom.xml", fileResolver.toPath(file));
final File directory = fileResolver.toFile("core");
assertNotNull(directory);
assertTrue(directory.exists());
assertFalse(directory.isAbsolute());
assertEquals("../core", normalizeSeparators(directory.getPath()));
assertEquals("core", fileResolver.toPath(directory));
}
public void testUsingCustomBaseDir() throws Exception {
final FileResolver fileResolver = new FileResolver(new File("src/test/resources"));
final File file = fileResolver.toFile("employees.csv");
assertNotNull(file);
assertTrue(file.exists());
assertFalse(file.isAbsolute());
assertEquals("src/test/resources/employees.csv", normalizeSeparators(file.getPath()));
assertEquals("employees.csv", fileResolver.toPath(file));
final File directory = fileResolver.toFile("example_folders/folder1");
assertNotNull(directory);
assertTrue(directory.exists());
assertFalse(directory.isAbsolute());
assertEquals("src/test/resources/example_folders/folder1", normalizeSeparators(directory.getPath()));
assertEquals("example_folders/folder1", fileResolver.toPath(directory));
}
public void testAbsolutePaths() throws Exception {
final String userHome = System.getProperty("user.home");
final String parent = new File(userHome).getAbsolutePath();
final FileResolver fileResolver = new FileResolver(new File("."));
final File file = fileResolver.toFile(parent);
assertNotNull(file);
assertTrue(file.isAbsolute());
assertEquals(userHome, file.getPath());
final String path = fileResolver.toPath(file);
assertEquals(normalizeSeparators(userHome), path);
}
private String normalizeSeparators(final String path) {
return StringUtils.replaceAll(path, "\\", "/");
}
}