...
1 package client
2
3 import (
4 "testing"
5
6 "github.com/stretchr/testify/assert"
7 "sigs.k8s.io/controller-runtime/pkg/client"
8 )
9
10 func TestObjectKeyFromRefString(t *testing.T) {
11 tcs := map[string]struct {
12 ref string
13 expected client.ObjectKey
14 valid bool
15 }{
16 "valid": {"default/guestbook", key("guestbook", "default"), true},
17 "has kind": {"deployment/default/guestbook", key("", ""), false},
18 "empty string": {"", key("", ""), false},
19 "no slash": {"default", key("", ""), false},
20 "slash with no value": {"default/", key("", ""), false},
21 "slash with no leading value": {"/guestbook", key("", ""), false},
22 "slash": {"/", key("", ""), false},
23 }
24
25 for name, tc := range tcs {
26 t.Run(name, func(t *testing.T) {
27 key, err := ObjectKeyFromRefStr(tc.ref)
28 switch {
29 case tc.valid:
30 assert.Equal(t, tc.expected, key)
31 default:
32 assert.Error(t, err)
33 }
34 })
35 }
36 }
37
38 func key(n, ns string) client.ObjectKey {
39 return client.ObjectKey{Name: n, Namespace: ns}
40 }
41
View as plain text