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 GitPathNormalizeTest extends AbstractGitFileSystemTest {
@Before
public void setupFileSystem() throws IOException {
initGitFileSystem();
}
@Test
public void normalizesAbsolutePathTest() {
GitPath path = gfs.getPath("/a/b");
GitPath result = path.normalize();
assertEquals("/a/b", result.toString());
}
@Test
public void normalizesAbsolutePathWithDotsTest() {
GitPath path = gfs.getPath("/a/./b/.");
GitPath result = path.normalize();
assertEquals("/a/b", result.toString());
}
@Test
public void normalizesAbsolutePathWithJustDotsTest() {
GitPath path = gfs.getPath("/./.");
GitPath result = path.normalize();
assertEquals("/", result.toString());
}
@Test
public void normalizesAbsolutePathWithDoubleDotsTest() {
GitPath path = gfs.getPath("/a/c/../b/../b");
GitPath result = path.normalize();
assertEquals("/a/b", result.toString());
}
@Test
public void normalizesAbsolutePathWithMoreDoubleDotsThanNamesTest() {
GitPath path = gfs.getPath("/a/../..");
GitPath result = path.normalize();
assertEquals("/", result.toString());
}
@Test
public void normalizesAbsolutePathWithJustDoubleDotsTest() {
GitPath path = gfs.getPath("/../..");
GitPath result = path.normalize();
assertEquals("/", result.toString());
}
@Test
public void normalizesAbsolutePathWithDotsAndDoubleDotsTest() {
GitPath path = gfs.getPath("/./a/./c/../b/../b");
GitPath result = path.normalize();
assertEquals("/a/b", result.toString());
}
@Test
public void normalizesRootPathTest() {
GitPath path = gfs.getPath("/");
GitPath result = path.normalize();
assertEquals("/", result.toString());
}
@Test
public void normalizesRelativePathTest() {
GitPath path = gfs.getPath("a/b");
GitPath result = path.normalize();
assertEquals("a/b", result.toString());
}
@Test
public void normalizesRelativePathWithDotsTest() {
GitPath path = gfs.getPath("a/./b/.");
GitPath result = path.normalize();
assertEquals("a/b", result.toString());
}
@Test
public void normalizesRelativePathWithJustDotsTest() {
GitPath path = gfs.getPath("./.");
GitPath result = path.normalize();
assertEquals("", result.toString());
}
@Test
public void normalizesRelativePathWithDoubleDotsTest() {
GitPath path = gfs.getPath("a/c/../b/../b");
GitPath result = path.normalize();
assertEquals("a/b", result.toString());
}
@Test
public void normalizesRelativePathWithMoreDoubleDotsThanNamesTest() {
GitPath path = gfs.getPath("a/../..");
GitPath result = path.normalize();
assertEquals("..", result.toString());
}
@Test
public void normalizesRelativePathWithJustDoubleDotsTest() {
GitPath path = gfs.getPath("../..");
GitPath result = path.normalize();
assertEquals("../..", result.toString());
}
@Test
public void normalizesRelativePathWithDotsAndDoubleDotsTest() {
GitPath path = gfs.getPath("./a/./c/../b/../b");
GitPath result = path.normalize();
assertEquals("a/b", result.toString());
}
@Test
public void normalizesEmptyPathTest() {
GitPath path = gfs.getPath("");
GitPath result = path.normalize();
assertEquals("", result.toString());
}
}