package org.the_jk.cleversync import com.google.common.truth.Truth.assertThat import org.junit.Test class PathUtilsTest { @Test fun dirname() { assertThat(PathUtils.dirname("")).isEqualTo(".") assertThat(PathUtils.dirname("foo")).isEqualTo(".") assertThat(PathUtils.dirname("foo/")).isEqualTo(".") assertThat(PathUtils.dirname("foo/bar")).isEqualTo("foo") assertThat(PathUtils.dirname("/")).isEqualTo("/") assertThat(PathUtils.dirname("//")).isEqualTo("/") assertThat(PathUtils.dirname("/foo")).isEqualTo("/") assertThat(PathUtils.dirname("/foo/")).isEqualTo("/") } @Test fun basename() { assertThat(PathUtils.basename("")).isEmpty() assertThat(PathUtils.basename("foo")).isEqualTo("foo") assertThat(PathUtils.basename("foo/")).isEqualTo("foo") assertThat(PathUtils.basename("foo/bar")).isEqualTo("bar") assertThat(PathUtils.basename("/")).isEqualTo("/") assertThat(PathUtils.basename("//")).isEqualTo("/") assertThat(PathUtils.basename("/foo")).isEqualTo("foo") assertThat(PathUtils.basename("/foo/")).isEqualTo("foo") } @Test fun join() { assertThat(PathUtils.join("", "")).isEmpty() assertThat(PathUtils.join("/", "")).isEqualTo("/") assertThat(PathUtils.join("", "/")).isEqualTo("/") assertThat(PathUtils.join("/", "/")).isEqualTo("/") assertThat(PathUtils.join("foo", "bar")).isEqualTo("foo/bar") assertThat(PathUtils.join("foo/", "bar")).isEqualTo("foo/bar") assertThat(PathUtils.join("foo", "/bar")).isEqualTo("/bar") assertThat(PathUtils.join("/foo", "/bar")).isEqualTo("/bar") assertThat(PathUtils.join("/foo", "bar/")).isEqualTo("/foo/bar/") assertThat(PathUtils.join("/foo/", "bar/")).isEqualTo("/foo/bar/") } @Test fun resolve() { assertThat(PathUtils.resolve("")).isEmpty() assertThat(PathUtils.resolve("/")).isEqualTo("/") assertThat(PathUtils.resolve("../foo")).isEqualTo("foo") assertThat(PathUtils.resolve("/../foo")).isEqualTo("/foo") assertThat(PathUtils.resolve("foo/../bar")).isEqualTo("bar") assertThat(PathUtils.resolve("/foo/../bar")).isEqualTo("/bar") assertThat(PathUtils.resolve("foo/./bar")).isEqualTo("foo/bar") assertThat(PathUtils.resolve("/foo/./bar")).isEqualTo("/foo/bar") assertThat(PathUtils.resolve("foo/../../../bar/")).isEqualTo("bar") assertThat(PathUtils.resolve("/foo/../../../bar/")).isEqualTo("/bar") } @Test fun relativeTo() { assertThat(PathUtils.relativeTo("", "")).isEmpty() assertThat(PathUtils.relativeTo("/", "/")).isEqualTo(".") assertThat(PathUtils.relativeTo("/", "/foo")).isEqualTo("foo") assertThat(PathUtils.relativeTo("/", "/foo/bar/")).isEqualTo("foo/bar") assertThat(PathUtils.relativeTo("/foo", "/foo/bar/")).isEqualTo("bar") assertThat(PathUtils.relativeTo("/foo", "/bar")).isEqualTo("../bar") assertThat(PathUtils.relativeTo("/foo/bar", "/fum/bar")).isEqualTo("../../fum/bar") } }