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()); } }