package org.nutz.lang.util;
import static org.junit.Assert.*;
import java.io.File;
import org.junit.Test;
import org.nutz.lang.Files;
public class DisksTest {
@Test
public void test_get_canonical_path() {
assertEquals("A", Disks.getCanonicalPath("A/B/.."));
assertEquals("B", Disks.getCanonicalPath("A/../B"));
assertEquals("B", Disks.getCanonicalPath("A/B/../../B"));
assertEquals("B/A", Disks.getCanonicalPath("../B/A"));
assertEquals("B/A", Disks.getCanonicalPath("../../B/A"));
}
@Test
public void test_get_relative_path() {
String path = Disks.getRelativePath("D:/dir/sub/uu.txt", "D:/dir/abc.gif");
assertEquals("../abc.gif", path);
path = Disks.getRelativePath("D:/dir/sub/../uu.txt", "D:/dir/abc.gif");
assertEquals("abc.gif", path);
path = Disks.getRelativePath("D:/dir/sub/../sub/uu.txt", "D:/abc.gif");
assertEquals("../../abc.gif", path);
path = Disks.getRelativePath("D:/uu.txt", "D:/abc.gif");
assertEquals("abc.gif", path);
}
@Test
public void test_simple_relative_path() {
File d1 = Files.findFile("org/nutz/lang");
File d2 = Files.findFile("org/nutz/json");
String path = Disks.getRelativePath(d1, d2);
assertEquals("../json", path);
d1 = Files.findFile("org/nutz/lang");
d2 = Files.findFile("org/nutz/lang");
path = Disks.getRelativePath(d1, d2);
assertEquals("./", path);
d1 = Files.findFile("org/nutz/lang");
d2 = Files.findFile("org/nutz/lang/util");
path = Disks.getRelativePath(d1, d2);
assertEquals("util", path);
d1 = Files.findFile("org/nutz/dao");
d2 = Files.findFile("org/nutz/lang/util");
path = Disks.getRelativePath(d1, d2);
assertEquals("../lang/util", path);
}
}