package com.beijunyi.parallelgit.filesystem;
import java.io.IOException;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class GitPathResolveTest extends AbstractGitFileSystemTest {
@Before
public void setupFileSystem() throws IOException {
initGitFileSystem();
}
@Test
public void resolveFileFromRootTest() {
GitPath path = root.resolve("a.txt");
assertEquals("/a.txt", path.toString());
}
@Test
public void resolveFileInDirectoryFromRootTest() {
GitPath path = root.resolve("a/b/c.txt");
assertEquals("/a/b/c.txt", path.toString());
}
@Test
public void resolveDirectoryFromRootTest() {
GitPath path = root.resolve("a/b/c/");
assertEquals("/a/b/c", path.toString());
}
@Test
public void resolvePathWithDuplicatedSeparatorsFromRootTest() {
GitPath path = root.resolve("a///b//c.txt");
assertEquals("/a/b/c.txt", path.toString());
}
@Test
public void resolveAbsolutePathFromRootTest() {
GitPath path = root.resolve("/a.txt");
assertEquals("/a.txt", path.toString());
}
@Test
public void resolveRootPathFromRootTest() {
GitPath path = root.resolve("/");
assertEquals("/", path.toString());
}
@Test
public void resolveEmptyPathFromRootTest() {
GitPath path = root.resolve("");
assertEquals("/", path.toString());
}
@Test
public void resolveFileFromAbsolutePathTest() {
GitPath parent = gfs.getPath("/parent/dir");
GitPath path = parent.resolve("a.txt");
assertEquals("/parent/dir/a.txt", path.toString());
}
@Test
public void resolveFileInDirectoryFromAbsolutePathTest() {
GitPath parent = gfs.getPath("/parent/dir");
GitPath path = parent.resolve("a/b/c.txt");
assertEquals("/parent/dir/a/b/c.txt", path.toString());
}
@Test
public void resolveDirectoryFromAbsolutePathTest() {
GitPath parent = gfs.getPath("/parent/dir");
GitPath path = parent.resolve("a/b/c/");
assertEquals("/parent/dir/a/b/c", path.toString());
}
@Test
public void resolvePathWithDuplicatedSeparatorsFromAbsolutePathTest() {
GitPath parent = gfs.getPath("/parent/dir");
GitPath path = parent.resolve("a///b//c.txt");
assertEquals("/parent/dir/a/b/c.txt", path.toString());
}
@Test
public void resolveAbsolutePathFromAbsolutePathTest() {
GitPath parent = gfs.getPath("/parent/dir");
GitPath path = parent.resolve("/a.txt");
assertEquals("/a.txt", path.toString());
}
@Test
public void resolveRootPathFromAbsolutePathTest() {
GitPath parent = gfs.getPath("/parent/dir");
GitPath path = parent.resolve("/");
assertEquals("/", path.toString());
}
@Test
public void resolveEmptyPathFromAbsolutePathTest() {
GitPath parent = gfs.getPath("/parent/dir");
GitPath path = parent.resolve("");
assertEquals("/parent/dir", path.toString());
}
@Test
public void resolveFileFromRelativePathTest() {
GitPath parent = gfs.getPath("parent/dir");
GitPath path = parent.resolve("a.txt");
assertEquals("parent/dir/a.txt", path.toString());
}
@Test
public void resolveFileInDirectoryFromRelativePathTest() {
GitPath parent = gfs.getPath("parent/dir");
GitPath path = parent.resolve("a/b/c.txt");
assertEquals("parent/dir/a/b/c.txt", path.toString());
}
@Test
public void resolveDirectoryFromRelativePathTest() {
GitPath parent = gfs.getPath("parent/dir");
GitPath path = parent.resolve("a/b/c/");
assertEquals("parent/dir/a/b/c", path.toString());
}
@Test
public void resolvePathWithDuplicatedSeparatorsFromRelativePathTest() {
GitPath parent = gfs.getPath("parent/dir");
GitPath path = parent.resolve("a///b//c.txt");
assertEquals("parent/dir/a/b/c.txt", path.toString());
}
@Test
public void resolveAbsolutePathFromRelativePathTest() {
GitPath parent = gfs.getPath("parent/dir");
GitPath path = parent.resolve("/a.txt");
assertEquals("/a.txt", path.toString());
}
@Test
public void resolveRootPathFromRelativePathTest() {
GitPath parent = gfs.getPath("parent/dir");
GitPath path = parent.resolve("/");
assertEquals("/", path.toString());
}
@Test
public void resolveEmptyPathFromRelativePathTest() {
GitPath parent = gfs.getPath("parent/dir");
GitPath path = parent.resolve("");
assertEquals("parent/dir", path.toString());
}
}