package cloudone.cumulonimbus.util;
import org.junit.Test;
import java.util.Arrays;
import java.util.Collections;
import static org.junit.Assert.assertEquals;
/**
* @author Martin Mares (martin.mares at oracle.com)
*/
public class PathUtilTest {
@Test
public void testNormalizePath() throws Exception {
assertEquals("/", PathUtil.normalizePath("/"));
assertEquals("/", PathUtil.normalizePath(""));
assertEquals("/foo", PathUtil.normalizePath("foo"));
assertEquals("/foo", PathUtil.normalizePath("foo/"));
assertEquals("/foo/bar", PathUtil.normalizePath("foo/bar/"));
}
@Test
public void testParsePath() throws Exception {
assertEquals(Collections.<String>emptyList(), PathUtil.parsePath("", false));
assertEquals(Collections.<String>emptyList(), PathUtil.parsePath("/", false));
assertEquals(Arrays.asList("foo"), PathUtil.parsePath("foo", false));
assertEquals(Arrays.asList("foo", "bar.xml"), PathUtil.parsePath("/foo/bar.xml", false));
assertEquals(Arrays.asList("foo", "bar"), PathUtil.parsePath("/foo/bar/", false));
assertEquals(Arrays.asList("foo", "", "bar"), PathUtil.parsePath("/foo//bar", false));
assertEquals(Arrays.asList("foo", "{id}", "bar"), PathUtil.parsePath("/foo/{id}/bar", false));
assertEquals(Arrays.asList("foo", "aaa{id}bbb", "bar"), PathUtil.parsePath("/foo/aaa{id}bbb/bar", false));
assertEquals(Arrays.asList("foo", "aaa{id:[abc]+}bbb", "bar"), PathUtil.parsePath("/foo/aaa{id:[abc]+}bbb/bar", false));
assertEquals(Arrays.asList("foo", "aaa{id}bbb", "bar{id2}"), PathUtil.parsePath("/foo/aaa{id}bbb/bar{id2}", false));
//To regexp
assertEquals(Arrays.asList("foo"), PathUtil.parsePath("foo", true));
assertEquals(Arrays.asList("foo", "bar\\.xml"), PathUtil.parsePath("/foo/bar.xml", true));
assertEquals(Arrays.asList("foo", "bar"), PathUtil.parsePath("/foo/bar/", true));
assertEquals(Arrays.asList("foo", "(.*)", "bar"), PathUtil.parsePath("/foo/{id}/bar", true));
assertEquals(Arrays.asList("foo", "aaa(.*)bbb\\.xml", "bar"), PathUtil.parsePath("/foo/aaa{id}bbb.xml/bar", true));
assertEquals(Arrays.asList("foo", "aaa([abc]+)bbb", "bar"), PathUtil.parsePath("/foo/aaa{id:[abc]+}bbb/bar", true));
assertEquals(Arrays.asList("foo", "aaa(.*)bbb", "bar(.*)"), PathUtil.parsePath("/foo/aaa{id}bbb/bar{id2}", true));
}
}