summaryrefslogtreecommitdiff
path: root/libs/utils/src/test/java/org/the_jk/cleversync/PathUtilsTest.kt
blob: 1d411eaea09c00c41ee4b6159988ca14af4dbf92 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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")
    }
}