package com.googlecode.mycontainer.commons.file; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import java.util.List; import org.junit.Test; import com.googlecode.mycontainer.commons.file.PathUtil; public class PathUtilTest { @Test public void testFix() { assertNull(PathUtil.fix(null)); assertEquals("xyz.txt", PathUtil.fix("xyz.txt")); assertEquals("/xyz.txt/", PathUtil.fix("///xyz.txt///")); assertEquals("/abc/fff/xyz.txt", PathUtil.fix("///abc////fff///xyz.txt")); assertEquals("/abc/fff/xyz.txt/", PathUtil.fix("///abc////fff///xyz.txt///")); assertEquals("/abc/fff/xyz.txt/", PathUtil.fix(" ///abc////fff///xyz.txt/// ")); assertEquals("/abc/fff/xyz.txt/", PathUtil.fix(" // /abc/// / fff / / / xyz.txt// / ")); assertEquals("/", PathUtil.fix("/")); } @Test public void testSplit() { assertNull(PathUtil.split(null)); assertSplit("xyz.txt", "xyz.txt"); assertSplit("//xyz.txt///", "xyz.txt"); assertSplit(" / / abc/fff/ /xyz.txt/ // ", "abc", "fff", "xyz.txt"); } private void assertSplit(String path, String... exp) { List<String> split = PathUtil.split(path); assertNotNull(split); int i = 0; while (i < exp.length && i < split.size()) { assertEquals(exp[i], split.get(i)); i++; } assertEquals(exp.length, split.size()); } @Test public void testGetName() { assertEquals("xyz.txt", PathUtil.getName("xyz.txt")); assertEquals("xyz.txt", PathUtil.getName("/xyz.txt")); assertEquals("xyz.txt", PathUtil.getName("/abc/fff/xyz.txt")); assertEquals("xyz.txt", PathUtil.getName("xyz.txt/")); assertEquals("xyz.txt", PathUtil.getName("/xyz.txt/")); assertEquals("xyz.txt", PathUtil.getName("/abc/fff/xyz.txt/")); assertEquals("/", PathUtil.getName("/")); assertEquals("xyz.txt", PathUtil.getName("///abc////fff///xyz.txt///")); } @Test public void testGetParent() { assertEquals("/", PathUtil.parentPath("xyz.txt")); assertEquals("/", PathUtil.parentPath("/xyz.txt")); assertEquals("/abc/fff", PathUtil.parentPath("/abc/fff/xyz.txt")); assertEquals("/", PathUtil.parentPath("xyz.txt/")); assertEquals("/", PathUtil.parentPath("/xyz.txt/")); assertEquals("/abc/fff", PathUtil.parentPath("/abc/fff/xyz.txt/")); assertNull(PathUtil.parentPath("/")); assertEquals("/abc/fff", PathUtil.parentPath("///abc////fff///xyz.txt///")); } }