package ecologylab.bigsemantics.metametadata; import static org.junit.Assert.assertEquals; import org.junit.Test; /** * * @author quyin * */ public class TestFileTools { @Test public void testGetRelativePath() { validateRelativePath("/usr/bin/", "/usr/bin/java", '/', "java"); validateRelativePath("/usr/bin", "/usr/bin/java", '/', "java"); validateRelativePath("/usr/bin", "/usr/bin//java", '/', "java"); validateRelativePath("usr/bin", "usr/bin/jdk/java", '/', "jdk/java"); validateRelativePath("/usr/bin", "/tmp/java", '/', "../../tmp/java"); validateRelativePath("/usr/bin", "/usr/local/bin/java", '/', "../local/bin/java"); validateRelativePath("/", "/tmp/java", '/', "tmp/java"); validateRelativePath("C:\\", "C:\\programs\\jdk\\java.exe", '\\', "programs\\jdk\\java.exe"); validateRelativePath("C:\\users", "C:\\programs\\\\java.exe", '\\', "..\\programs\\java.exe"); validateRelativePath("C:\\", "D:\\programs\\jdk\\java.exe", '\\', "D:\\programs\\jdk\\java.exe"); } private void validateRelativePath(String ancestorPath, String filePath, char separator, String expectedRelativePath) { String result = FileTools.getRelativePath(ancestorPath, filePath, separator); System.out.format("ancestor: %s, file: %s, expected: %s, actual: %s\n", ancestorPath, filePath, expectedRelativePath, result); assertEquals(expectedRelativePath, result); } }