2 * ============LICENSE_START=======================================================
3 * oom-certservice-k8s-external-provider
4 * ================================================================================
5 * Copyright (C) 2020 Nokia. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package cmpv2provisioner
27 "github.com/stretchr/testify/assert"
28 v1 "k8s.io/api/core/v1"
30 "onap.org/oom-certservice/k8s-external-provider/src/cmpv2api"
34 secretName = "issuer-cert-secret"
35 url = "https://oom-cert-service:8443/v1/certificate/"
37 keySecretKey = "cmpv2Issuer-key.pem"
38 certSecretKey = "cmpv2Issuer-cert.pem"
39 cacertSecretKey = "cacert.pem"
43 keySecretValue = []byte("keyData")
44 certSecretValue = []byte("certData")
45 cacertSecretValue = []byte("cacertData")
48 func Test_shouldCreateProvisioner(t *testing.T) {
49 issuer, secret := getValidIssuerAndSecret()
51 provisioner, _ := CreateProvisioner(&issuer, secret)
53 assert.NotNil(t, provisioner)
54 assert.Equal(t, url, provisioner.url)
55 assert.Equal(t, caName, provisioner.caName)
56 assert.Equal(t, keySecretValue, provisioner.key)
57 assert.Equal(t, certSecretValue, provisioner.cert)
58 assert.Equal(t, cacertSecretValue, provisioner.cacert)
61 func Test_shouldReturnError_whenSecretMissingKeyRef(t *testing.T) {
62 issuer, secret := getValidIssuerAndSecret()
63 delete(secret.Data, keySecretKey)
65 provisioner, err := CreateProvisioner(&issuer, secret)
67 assert.Nil(t, provisioner)
68 if assert.Error(t, err) {
69 assert.Equal(t, fmt.Errorf("secret %s does not contain key %s", secretName, keySecretKey), err)
73 func Test_shouldReturnError_whenSecretMissingCertRef(t *testing.T) {
74 issuer, secret := getValidIssuerAndSecret()
75 delete(secret.Data, certSecretKey)
77 provisioner, err := CreateProvisioner(&issuer, secret)
79 assert.Nil(t, provisioner)
80 if assert.Error(t, err) {
81 assert.Equal(t, fmt.Errorf("secret %s does not contain key %s", secretName, certSecretKey), err)
85 func Test_shouldReturnError_whenSecretMissingCacertRef(t *testing.T) {
86 issuer, secret := getValidIssuerAndSecret()
87 delete(secret.Data, cacertSecretKey)
89 provisioner, err := CreateProvisioner(&issuer, secret)
91 assert.Nil(t, provisioner)
92 if assert.Error(t, err) {
93 assert.Equal(t, fmt.Errorf("secret %s does not contain key %s", secretName, cacertSecretKey), err)
97 func getValidIssuerAndSecret() (cmpv2api.CMPv2Issuer, v1.Secret) {
98 issuer := cmpv2api.CMPv2Issuer{
99 Spec: cmpv2api.CMPv2IssuerSpec{
102 CertSecretRef: cmpv2api.SecretKeySelector{
104 KeyRef: keySecretKey,
105 CertRef: certSecretKey,
106 CacertRef: cacertSecretKey,
112 Data: map[string][]byte{
113 keySecretKey: keySecretValue,
114 certSecretKey: certSecretValue,
115 cacertSecretKey: cacertSecretValue,
118 secret.Name = secretName
119 return issuer, secret