summaryrefslogtreecommitdiffstats
path: root/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_test.go
diff options
context:
space:
mode:
authorPiotr Marcinkiewicz <piotr.marcinkiewicz@nokia.com>2020-11-03 17:06:13 +0100
committerPiotr Marcinkiewicz <piotr.marcinkiewicz@nokia.com>2020-11-05 08:34:41 +0000
commit15446c2ccfc117a0feb5a5249c2e62714b2cd3d7 (patch)
tree1f162c4c79ed2f95092f159edf2f4890aa606231 /certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_test.go
parent39cc4f095a0107f7edaa4f86629775e1c09d5650 (diff)
[OOM-K8S-CERT-EXTERNAL-PROVIDER] Add CertificateRequest controller test
- Add CertificateRequest controller test with fake K8s API Issue-ID: OOM-2559 Signed-off-by: Piotr Marcinkiewicz <piotr.marcinkiewicz@nokia.com> Change-Id: I4e32c2d28f5c4ea35dd013119dfc31acb1646582
Diffstat (limited to 'certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_test.go')
-rw-r--r--certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_test.go66
1 files changed, 11 insertions, 55 deletions
diff --git a/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_test.go b/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_test.go
index a483c72c..cfafe959 100644
--- a/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_test.go
+++ b/certServiceK8sExternalProvider/src/cmpv2provisioner/cmpv2_provisioner_test.go
@@ -21,10 +21,7 @@
package cmpv2provisioner
import (
- "bytes"
"context"
- "io/ioutil"
- "log"
"testing"
"time"
@@ -32,10 +29,10 @@ import (
"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/testdata"
)
const ISSUER_NAME = "cmpv2-issuer"
@@ -44,7 +41,7 @@ const ISSUER_NAMESPACE = "onap"
func Test_shouldCreateCorrectCertServiceCA(t *testing.T) {
issuer := createIssuerAndCerts(ISSUER_NAME, ISSUER_URL)
- provisioner, err := New(&issuer, &certServiceClientMock{})
+ provisioner, err := New(&issuer, &certserviceclient.CertServiceClientMock{})
assert.Nil(t, err)
assert.Equal(t, provisioner.name, issuer.Name, "Unexpected provisioner name.")
@@ -53,34 +50,31 @@ func Test_shouldCreateCorrectCertServiceCA(t *testing.T) {
func Test_shouldSuccessfullyLoadPreviouslyStoredProvisioner(t *testing.T) {
issuer := createIssuerAndCerts(ISSUER_NAME, ISSUER_URL)
- provisioner, err := New(&issuer, &certServiceClientMock{})
+ provisioner, err := New(&issuer, &certserviceclient.CertServiceClientMock{})
assert.Nil(t, err)
- issuerNamespaceName := createIssuerNamespaceName(ISSUER_NAMESPACE, ISSUER_NAME)
+ issuerNamespaceName := testdata.CreateIssuerNamespaceName(ISSUER_NAMESPACE, ISSUER_NAME)
Store(issuerNamespaceName, provisioner)
provisioner, ok := Load(issuerNamespaceName)
- verifyThatConditionIsTrue(ok, "Provisioner could not be loaded.", t)
+ testdata.VerifyThatConditionIsTrue(ok, "Provisioner could not be loaded.", t)
assert.Equal(t, provisioner.name, issuer.Name, "Unexpected provisioner name.")
assert.Equal(t, provisioner.url, issuer.Spec.URL, "Unexpected provisioner url.")
}
func Test_shouldReturnCorrectSignedPemsWhenParametersAreCorrect(t *testing.T) {
- const EXPECTED_SIGNED_FILENAME = "testdata/expected_signed.pem"
- const EXPECTED_TRUSTED_FILENAME = "testdata/expected_trusted.pem"
-
issuer := createIssuerAndCerts(ISSUER_NAME, ISSUER_URL)
provisionerFactory := ProvisionerFactoryMock{}
provisioner, err := provisionerFactory.CreateProvisioner(&issuer, apiv1.Secret{})
- issuerNamespaceName := createIssuerNamespaceName(ISSUER_NAMESPACE, ISSUER_NAME)
+ issuerNamespaceName := testdata.CreateIssuerNamespaceName(ISSUER_NAMESPACE, ISSUER_NAME)
Store(issuerNamespaceName, provisioner)
provisioner, ok := Load(issuerNamespaceName)
- verifyThatConditionIsTrue(ok, "Provisioner could not be loaded", t)
+ testdata.VerifyThatConditionIsTrue(ok, "Provisioner could not be loaded", t)
ctx := context.Background()
request := createCertificateRequest()
@@ -90,21 +84,7 @@ func Test_shouldReturnCorrectSignedPemsWhenParametersAreCorrect(t *testing.T) {
assert.Nil(t, err)
- verifyThatConditionIsTrue(areSlicesEqual(signedPEM, readFile(EXPECTED_SIGNED_FILENAME)), "Signed pem is different than expected.", t)
- verifyThatConditionIsTrue(areSlicesEqual(trustedCAs, readFile(EXPECTED_TRUSTED_FILENAME)), "Trusted CAs pem is different than expected.", t)
-}
-
-func verifyThatConditionIsTrue(cond bool, message string, t *testing.T) {
- if !cond {
- t.Fatal(message)
- }
-}
-
-func createIssuerNamespaceName(namespace string, name string) types.NamespacedName {
- return types.NamespacedName{
- Namespace: namespace,
- Name: name,
- }
+ testdata.VerifyCertsAreEqualToExpected(t, signedPEM, trustedCAs)
}
func createIssuerAndCerts(name string, url string) cmpv2api.CMPv2Issuer {
@@ -114,14 +94,6 @@ func createIssuerAndCerts(name string, url string) cmpv2api.CMPv2Issuer {
return issuer
}
-func readFile(filename string) []byte {
- certRequest, err := ioutil.ReadFile(filename)
- if err != nil {
- log.Fatal(err)
- }
- return certRequest
-}
-
func createCertificateRequest() *cmapi.CertificateRequest {
const CERTIFICATE_DURATION = "1h"
const ISSUER_KIND = "CMPv2Issuer"
@@ -140,33 +112,17 @@ func createCertificateRequest() *cmapi.CertificateRequest {
request.Spec.IssuerRef.Name = ISSUER_NAME
request.Spec.IssuerRef.Kind = ISSUER_KIND
request.Spec.IssuerRef.Group = ISSUER_GROUP
- request.Spec.Request = readFile(SPEC_REQUEST_FILENAME)
+ request.Spec.Request = testdata.ReadFile(SPEC_REQUEST_FILENAME)
request.Spec.IsCA = true
cond := new(cmapi.CertificateRequestCondition)
cond.Type = CONDITION_TYPE
request.Status.Conditions = []cmapi.CertificateRequestCondition{*cond}
- request.Status.Certificate = readFile(STATUS_CERTIFICATE_FILENAME)
+ request.Status.Certificate = testdata.ReadFile(STATUS_CERTIFICATE_FILENAME)
return request
}
func getPrivateKeyBytes() []byte {
- return readFile("testdata/test_private_key.pem")
-}
-
-func areSlicesEqual(slice1 []byte, slice2 []byte) bool {
- return bytes.Compare(slice1, slice2) == 0
-}
-
-type certServiceClientMock struct {
- getCertificatesFunc func(csr []byte, key []byte) (*certserviceclient.CertificatesResponse, error)
-}
-
-func (client *certServiceClientMock) GetCertificates(csr []byte, key []byte) (*certserviceclient.CertificatesResponse, error) {
- return client.getCertificatesFunc(csr, key)
-}
-
-func (client *certServiceClientMock) CheckHealth() error {
- return nil
+ return testdata.ReadFile("testdata/test_private_key.pem")
}