...
1 package resourcename
2
3 import (
4 "testing"
5
6 "gotest.tools/v3/assert"
7 )
8
9 func TestAncestor(t *testing.T) {
10 t.Parallel()
11 for _, tt := range []struct {
12 name string
13 input string
14 pattern string
15 expected string
16 expectedOK bool
17 }{
18 {
19 name: "empty all",
20 input: "",
21 pattern: "",
22 expected: "",
23 },
24 {
25 name: "empty pattern",
26 input: "foo/1/bar/2",
27 pattern: "",
28 expected: "",
29 },
30
31 {
32 name: "empty name",
33 input: "",
34 pattern: "foo/{foo}",
35 expected: "",
36 },
37
38 {
39 name: "non-matching pattern",
40 input: "foo/1/bar/2",
41 pattern: "baz/{baz}",
42 expected: "",
43 },
44
45 {
46 name: "ok",
47 input: "foo/1/bar/2",
48 pattern: "foo/{foo}",
49 expected: "foo/1",
50 expectedOK: true,
51 },
52
53 {
54 name: "ok full",
55 input: "//foo.example.com/foo/1/bar/2",
56 pattern: "foo/{foo}",
57 expected: "//foo.example.com/foo/1",
58 expectedOK: true,
59 },
60 } {
61 tt := tt
62 t.Run(tt.name, func(t *testing.T) {
63 t.Parallel()
64 actual, ok := Ancestor(tt.input, tt.pattern)
65 assert.Equal(t, tt.expectedOK, ok)
66 assert.Equal(t, tt.expected, actual)
67 })
68 }
69 }
70
View as plain text