forked from verless/verless
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpath_test.go
More file actions
95 lines (84 loc) · 1.82 KB
/
path_test.go
File metadata and controls
95 lines (84 loc) · 1.82 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package tree
import (
"testing"
"github.com/verless/verless/test"
)
// TestIsRootPath checks if the IsRootPath function correctly
// indicates whether a given path is a tree's root path or not.
func TestIsRootPath(t *testing.T) {
tests := map[string]struct {
path string
isRootPath bool
}{
"root path": {
path: RootPath,
isRootPath: true,
},
"non-root path": {
path: "/blog",
},
}
for name, testCase := range tests {
t.Log(name)
isRootPath := IsRootPath(testCase.path)
test.Equals(t, testCase.isRootPath, isRootPath)
}
}
// TestIsValidPath checks if the IsValidPath function correctly
// indicates whether a given path is valid or not.
func TestIsValidPath(t *testing.T) {
tests := map[string]struct {
path string
isValidPath bool
}{
"root path": {
path: RootPath,
isValidPath: true,
},
"path with depth 1": {
path: "/blog",
isValidPath: true,
},
"path with depth 2": {
path: "/blog/coffee",
isValidPath: true,
},
"invalid path with depth 1": {
path: "blog",
},
"invalid path with depth 2": {
path: "blog/coffee",
},
}
for name, testCase := range tests {
t.Log(name)
isValidPath := IsValidPath(testCase.path)
test.Equals(t, testCase.isValidPath, isValidPath)
}
}
// TestEdges checks if the Edges function correctly returns all
// edges of a given tree path.
func TestEdges(t *testing.T) {
tests := map[string]struct {
path string
edges []string
}{
"root path": {
path: RootPath,
edges: []string{},
},
"path with depth 1": {
path: "/blog",
edges: []string{"blog"},
},
"path with depth 2": {
path: "/blog/coffee",
edges: []string{"blog", "coffee"},
},
}
for name, testCase := range tests {
t.Log(name)
edges := Edges(testCase.path)
test.Equals(t, testCase.edges, edges)
}
}