-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathregistry_test.go
More file actions
83 lines (74 loc) · 2.36 KB
/
registry_test.go
File metadata and controls
83 lines (74 loc) · 2.36 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
package gitreceive
import (
"errors"
"testing"
"github.com/arschles/assert"
"github.com/drycc/builder/pkg/k8s"
corev1 "k8s.io/api/core/v1"
typedcorev1 "k8s.io/client-go/kubernetes/typed/core/v1"
)
const (
testSecret = "test-secret"
dryccNamespace = "drycc"
)
func TestGetDetailsFromRegistrySecretErr(t *testing.T) {
expectedErr := errors.New("get secret error")
getter := &k8s.FakeSecret{
FnGet: func(string) (*corev1.Secret, error) {
return &corev1.Secret{}, expectedErr
},
}
_, err := getDetailsFromRegistrySecret(getter, testSecret)
assert.Err(t, err, expectedErr)
}
func TestGetDetailsFromRegistrySecretSuccess(t *testing.T) {
data := map[string][]byte{"test": []byte("test")}
expectedData := map[string]string{"test": "test"}
secret := corev1.Secret{Data: data}
getter := &k8s.FakeSecret{
FnGet: func(string) (*corev1.Secret, error) {
return &secret, nil
},
}
secretData, err := getDetailsFromRegistrySecret(getter, testSecret)
assert.NoErr(t, err)
assert.Equal(t, secretData, expectedData, "secret data")
}
func TestGetRegistryDetailsOffclusterErr(t *testing.T) {
expectedErr := errors.New("get secret error")
getter := &k8s.FakeSecret{
FnGet: func(string) (*corev1.Secret, error) {
return &corev1.Secret{}, expectedErr
//return &kubernetes.Clientset.CoreV1(), expectedErr
},
}
kubeClient := &k8s.FakeSecretsGetter{
Fn: func(string) typedcorev1.SecretInterface {
return getter
},
}
image := "test-image"
_, err := getRegistryDetails(kubeClient, &image, "off-cluster", dryccNamespace)
assert.Err(t, err, expectedErr)
}
func TestGetRegistryDetailsOffclusterSuccess(t *testing.T) {
data := map[string][]byte{"organization": []byte("kmala"), "hostname": []byte("quay.io")}
expectedData := map[string]string{"DRYCC_REGISTRY_HOSTNAME": "quay.io", "DRYCC_REGISTRY_ORGANIZATION": "kmala"}
expectedImage := "quay.io/kmala/test-image"
secret := corev1.Secret{Data: data}
getter := &k8s.FakeSecret{
FnGet: func(string) (*corev1.Secret, error) {
return &secret, nil
},
}
kubeClient := &k8s.FakeSecretsGetter{
Fn: func(string) typedcorev1.SecretInterface {
return getter
},
}
image := "test-image"
regDetails, err := getRegistryDetails(kubeClient, &image, "off-cluster", dryccNamespace)
assert.NoErr(t, err)
assert.Equal(t, expectedData, regDetails, "registry details")
assert.Equal(t, expectedImage, image, "image")
}