aboutsummaryrefslogtreecommitdiffstats
path: root/certServiceK8sExternalProvider/src/cmpv2provisioner
diff options
context:
space:
mode:
authorPiotr Marcinkiewicz <piotr.marcinkiewicz@nokia.com>2020-10-30 11:02:51 +0100
committerPiotr Marcinkiewicz <piotr.marcinkiewicz@nokia.com>2020-11-04 08:54:32 +0100
commita7a7e91bb5ea9363272697c39eee0b62d21585ec (patch)
tree3e297d8ae81cafb8eb775844cfeb26c3f710a55f /certServiceK8sExternalProvider/src/cmpv2provisioner
parent9879e0147fc076114c7226bd6130d25c14770639 (diff)
[OOM-K8S-CERT-EXTERNAL-PROVIDER] Add CMPv2IssuerController test
- Add Reconcile test in CMPv2IssuerController Issue-ID: OOM-2559 Signed-off-by: Piotr Marcinkiewicz <piotr.marcinkiewicz@nokia.com> Change-Id: I49aff7bc36f7da4df7eeaebaca144ee5a5bb9853
Diffstat (limited to 'certServiceK8sExternalProvider/src/cmpv2provisioner')
-rw-r--r--certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_factory.go10
-rw-r--r--certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_factory_mock.go43
-rw-r--r--certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_factory_test.go87
-rw-r--r--certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_test.go9
4 files changed, 81 insertions, 68 deletions
diff --git a/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_factory.go b/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_factory.go
index 27f5c108..00abd2ea 100644
--- a/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_factory.go
+++ b/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_factory.go
@@ -29,7 +29,15 @@ import (
"onap.org/oom-certservice/k8s-external-provider/src/cmpv2api"
)
-func CreateProvisioner(issuer *cmpv2api.CMPv2Issuer, secret v1.Secret) (*CertServiceCA, error) {
+
+type ProvisionerFactory interface {
+ CreateProvisioner(issuer *cmpv2api.CMPv2Issuer, secret v1.Secret) (*CertServiceCA, error)
+}
+
+type ProvisionerFactoryImpl struct {
+}
+
+func (f *ProvisionerFactoryImpl) CreateProvisioner(issuer *cmpv2api.CMPv2Issuer, secret v1.Secret) (*CertServiceCA, error) {
secretKeys := issuer.Spec.CertSecretRef
keyBase64, err := readValueFromSecret(secret, secretKeys.KeyRef)
if err != nil {
diff --git a/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_factory_mock.go b/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_factory_mock.go
new file mode 100644
index 00000000..f2ffa860
--- /dev/null
+++ b/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_factory_mock.go
@@ -0,0 +1,43 @@
+/*
+ * ============LICENSE_START=======================================================
+ * oom-certservice-k8s-external-provider
+ * ================================================================================
+ * Copyright (C) 2020 Nokia. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package cmpv2provisioner
+
+import (
+ v1 "k8s.io/api/core/v1"
+
+ "onap.org/oom-certservice/k8s-external-provider/src/certserviceclient"
+ "onap.org/oom-certservice/k8s-external-provider/src/cmpv2api"
+ "onap.org/oom-certservice/k8s-external-provider/src/cmpv2provisioner/testdata"
+)
+
+type ProvisionerFactoryMock struct {
+ CreateProvisionerFunc func(issuer *cmpv2api.CMPv2Issuer, secret v1.Secret) (*CertServiceCA, error)
+}
+
+func (f *ProvisionerFactoryMock) CreateProvisioner(issuer *cmpv2api.CMPv2Issuer, secret v1.Secret) (*CertServiceCA, error) {
+ provisioner, err := New(issuer, &certserviceclient.CertServiceClientMock{
+ GetCertificatesFunc: func(csr []byte, pk []byte) (response *certserviceclient.CertificatesResponse, e error) {
+ return &testdata.SampleCertServiceResponse, nil
+ },
+ })
+
+ return provisioner, err
+}
diff --git a/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_factory_test.go b/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_factory_test.go
index be19bde9..a7e975a4 100644
--- a/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_factory_test.go
+++ b/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_factory_test.go
@@ -26,105 +26,70 @@ import (
"testing"
"github.com/stretchr/testify/assert"
- v1 "k8s.io/api/core/v1"
- "onap.org/oom-certservice/k8s-external-provider/src/cmpv2api"
"onap.org/oom-certservice/k8s-external-provider/src/testdata"
)
-const (
- secretName = "issuer-cert-secret"
- url = "https://oom-cert-service:8443/v1/certificate/"
- healthEndpoint = "actuator/health"
- certEndpoint = "v1/certificate"
- caName = "RA"
- keySecretKey = "cmpv2Issuer-key.pem"
- certSecretKey = "cmpv2Issuer-cert.pem"
- cacertSecretKey = "cacert.pem"
-)
-
func Test_shouldCreateProvisioner(t *testing.T) {
- issuer, secret := getValidIssuerAndSecret()
+ issuer, secret := testdata.GetValidIssuerWithSecret()
+ provisionerFactory := ProvisionerFactoryImpl{}
- provisioner, _ := CreateProvisioner(&issuer, secret)
+ provisioner, _ := provisionerFactory.CreateProvisioner(&issuer, secret)
assert.NotNil(t, provisioner)
- assert.Equal(t, url, provisioner.url)
- assert.Equal(t, caName, provisioner.caName)
- assert.Equal(t, healthEndpoint, provisioner.healthEndpoint)
- assert.Equal(t, certEndpoint, provisioner.certEndpoint)
+ assert.Equal(t, testdata.Url, provisioner.url)
+ assert.Equal(t, testdata.CaName, provisioner.caName)
+ assert.Equal(t, testdata.HealthEndpoint, provisioner.healthEndpoint)
+ assert.Equal(t, testdata.CertEndpoint, provisioner.certEndpoint)
}
func Test_shouldReturnError_whenSecretMissingKeyRef(t *testing.T) {
- issuer, secret := getValidIssuerAndSecret()
- delete(secret.Data, keySecretKey)
+ issuer, secret := testdata.GetValidIssuerWithSecret()
+ delete(secret.Data, testdata.KeySecretKey)
+ provisionerFactory := ProvisionerFactoryImpl{}
- provisioner, err := CreateProvisioner(&issuer, secret)
+ provisioner, err := provisionerFactory.CreateProvisioner(&issuer, secret)
assert.Nil(t, provisioner)
if assert.Error(t, err) {
- assert.Equal(t, fmt.Errorf("secret %s does not contain key %s", secretName, keySecretKey), err)
+ assert.Equal(t, fmt.Errorf("secret %s does not contain key %s", testdata.SecretName, testdata.KeySecretKey), err)
}
}
func Test_shouldReturnError_whenSecretMissingCertRef(t *testing.T) {
- issuer, secret := getValidIssuerAndSecret()
- delete(secret.Data, certSecretKey)
+ issuer, secret := testdata.GetValidIssuerWithSecret()
+ delete(secret.Data, testdata.CertSecretKey)
+ provisionerFactory := ProvisionerFactoryImpl{}
- provisioner, err := CreateProvisioner(&issuer, secret)
+ provisioner, err := provisionerFactory.CreateProvisioner(&issuer, secret)
assert.Nil(t, provisioner)
if assert.Error(t, err) {
- assert.Equal(t, fmt.Errorf("secret %s does not contain key %s", secretName, certSecretKey), err)
+ assert.Equal(t, fmt.Errorf("secret %s does not contain key %s", testdata.SecretName, testdata.CertSecretKey), err)
}
}
func Test_shouldReturnError_whenSecretMissingCacertRef(t *testing.T) {
- issuer, secret := getValidIssuerAndSecret()
- delete(secret.Data, cacertSecretKey)
+ issuer, secret := testdata.GetValidIssuerWithSecret()
+ delete(secret.Data, testdata.CacertSecretKey)
+ provisionerFactory := ProvisionerFactoryImpl{}
- provisioner, err := CreateProvisioner(&issuer, secret)
+ provisioner, err := provisionerFactory.CreateProvisioner(&issuer, secret)
assert.Nil(t, provisioner)
if assert.Error(t, err) {
- assert.Equal(t, fmt.Errorf("secret %s does not contain key %s", secretName, cacertSecretKey), err)
+ assert.Equal(t, fmt.Errorf("secret %s does not contain key %s", testdata.SecretName, testdata.CacertSecretKey), err)
}
}
func Test_shouldReturnError_whenCreationOfCertServiceClientReturnsError(t *testing.T) {
- issuer, secret := getValidIssuerAndSecret()
+ issuer, secret := testdata.GetValidIssuerWithSecret()
invalidKeySecretValue, _ := base64.StdEncoding.DecodeString("")
- secret.Data[keySecretKey] = invalidKeySecretValue
+ secret.Data[testdata.KeySecretKey] = invalidKeySecretValue
+ provisionerFactory := ProvisionerFactoryImpl{}
- provisioner, err := CreateProvisioner(&issuer, secret)
+ provisioner, err := provisionerFactory.CreateProvisioner(&issuer, secret)
assert.Nil(t, provisioner)
assert.Error(t, err)
}
-
-func getValidIssuerAndSecret() (cmpv2api.CMPv2Issuer, v1.Secret) {
- issuer := cmpv2api.CMPv2Issuer{
- Spec: cmpv2api.CMPv2IssuerSpec{
- URL: url,
- HealthEndpoint: healthEndpoint,
- CertEndpoint: certEndpoint,
- CaName: caName,
- CertSecretRef: cmpv2api.SecretKeySelector{
- Name: secretName,
- KeyRef: keySecretKey,
- CertRef: certSecretKey,
- CacertRef: cacertSecretKey,
- },
- },
- }
- secret := v1.Secret{
-
- Data: map[string][]byte{
- keySecretKey: testdata.KeyBytes,
- certSecretKey: testdata.CertBytes,
- cacertSecretKey: testdata.CacertBytes,
- },
- }
- secret.Name = secretName
- return issuer, secret
-}
diff --git a/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_test.go b/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_test.go
index 099233c4..a483c72c 100644
--- a/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_test.go
+++ b/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_test.go
@@ -30,12 +30,12 @@ import (
cmapi "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1"
"github.com/stretchr/testify/assert"
+ apiv1 "k8s.io/api/core/v1"
apimach "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"onap.org/oom-certservice/k8s-external-provider/src/certserviceclient"
"onap.org/oom-certservice/k8s-external-provider/src/cmpv2api"
- "onap.org/oom-certservice/k8s-external-provider/src/cmpv2provisioner/testdata"
)
const ISSUER_NAME = "cmpv2-issuer"
@@ -72,11 +72,8 @@ func Test_shouldReturnCorrectSignedPemsWhenParametersAreCorrect(t *testing.T) {
const EXPECTED_TRUSTED_FILENAME = "testdata/expected_trusted.pem"
issuer := createIssuerAndCerts(ISSUER_NAME, ISSUER_URL)
- provisioner, err := New(&issuer, &certServiceClientMock{
- getCertificatesFunc: func(csr []byte, pk []byte) (response *certserviceclient.CertificatesResponse, e error) {
- return &testdata.SampleCertServiceResponse, nil
- },
- })
+ provisionerFactory := ProvisionerFactoryMock{}
+ provisioner, err := provisionerFactory.CreateProvisioner(&issuer, apiv1.Secret{})
issuerNamespaceName := createIssuerNamespaceName(ISSUER_NAMESPACE, ISSUER_NAME)
Store(issuerNamespaceName, provisioner)