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
28 "github.com/stretchr/testify/assert"
29 v1 "k8s.io/api/core/v1"
31 "onap.org/oom-certservice/k8s-external-provider/src/cmpv2api"
32 "onap.org/oom-certservice/k8s-external-provider/src/testdata"
36 secretName = "issuer-cert-secret"
37 url = "https://oom-cert-service:8443/v1/certificate/"
39 keySecretKey = "cmpv2Issuer-key.pem"
40 certSecretKey = "cmpv2Issuer-cert.pem"
41 cacertSecretKey = "cacert.pem"
44 func Test_shouldCreateProvisioner(t *testing.T) {
45 issuer, secret := getValidIssuerAndSecret()
47 provisioner, _ := CreateProvisioner(&issuer, secret)
49 assert.NotNil(t, provisioner)
50 assert.Equal(t, url, provisioner.url)
51 assert.Equal(t, caName, provisioner.caName)
54 func Test_shouldReturnError_whenSecretMissingKeyRef(t *testing.T) {
55 issuer, secret := getValidIssuerAndSecret()
56 delete(secret.Data, keySecretKey)
58 provisioner, err := CreateProvisioner(&issuer, secret)
60 assert.Nil(t, provisioner)
61 if assert.Error(t, err) {
62 assert.Equal(t, fmt.Errorf("secret %s does not contain key %s", secretName, keySecretKey), err)
66 func Test_shouldReturnError_whenSecretMissingCertRef(t *testing.T) {
67 issuer, secret := getValidIssuerAndSecret()
68 delete(secret.Data, certSecretKey)
70 provisioner, err := CreateProvisioner(&issuer, secret)
72 assert.Nil(t, provisioner)
73 if assert.Error(t, err) {
74 assert.Equal(t, fmt.Errorf("secret %s does not contain key %s", secretName, certSecretKey), err)
78 func Test_shouldReturnError_whenSecretMissingCacertRef(t *testing.T) {
79 issuer, secret := getValidIssuerAndSecret()
80 delete(secret.Data, cacertSecretKey)
82 provisioner, err := CreateProvisioner(&issuer, secret)
84 assert.Nil(t, provisioner)
85 if assert.Error(t, err) {
86 assert.Equal(t, fmt.Errorf("secret %s does not contain key %s", secretName, cacertSecretKey), err)
91 func Test_shouldReturnError_whenCreationOfCertServiceClientReturnsError(t *testing.T) {
92 issuer, secret := getValidIssuerAndSecret()
93 invalidKeySecretValue, _ := base64.StdEncoding.DecodeString("")
94 secret.Data[keySecretKey] = invalidKeySecretValue
96 provisioner, err := CreateProvisioner(&issuer, secret)
98 assert.Nil(t, provisioner)
102 func getValidIssuerAndSecret() (cmpv2api.CMPv2Issuer, v1.Secret) {
103 issuer := cmpv2api.CMPv2Issuer{
104 Spec: cmpv2api.CMPv2IssuerSpec{
107 CertSecretRef: cmpv2api.SecretKeySelector{
109 KeyRef: keySecretKey,
110 CertRef: certSecretKey,
111 CacertRef: cacertSecretKey,
117 Data: map[string][]byte{
118 keySecretKey: testdata.KeyBytes,
119 certSecretKey: testdata.CertBytes,
120 cacertSecretKey: testdata.CacertBytes,
123 secret.Name = secretName
124 return issuer, secret