diff options
author | Piotr Marcinkiewicz <piotr.marcinkiewicz@nokia.com> | 2020-11-03 17:06:13 +0100 |
---|---|---|
committer | Piotr Marcinkiewicz <piotr.marcinkiewicz@nokia.com> | 2020-11-05 08:34:41 +0000 |
commit | 15446c2ccfc117a0feb5a5249c2e62714b2cd3d7 (patch) | |
tree | 1f162c4c79ed2f95092f159edf2f4890aa606231 /certServiceK8sExternalProvider/src/testdata | |
parent | 39cc4f095a0107f7edaa4f86629775e1c09d5650 (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/testdata')
-rw-r--r-- | certServiceK8sExternalProvider/src/testdata/provider.go | 38 | ||||
-rw-r--r-- | certServiceK8sExternalProvider/src/testdata/utils.go | 56 |
2 files changed, 90 insertions, 4 deletions
diff --git a/certServiceK8sExternalProvider/src/testdata/provider.go b/certServiceK8sExternalProvider/src/testdata/provider.go index 2e352cbf..6bb420c3 100644 --- a/certServiceK8sExternalProvider/src/testdata/provider.go +++ b/certServiceK8sExternalProvider/src/testdata/provider.go @@ -21,8 +21,13 @@ package testdata import ( + cmapi "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1" "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + scheme2 "k8s.io/client-go/kubernetes/scheme" + "sigs.k8s.io/controller-runtime/pkg/reconcile" "onap.org/oom-certservice/k8s-external-provider/src/cmpv2api" ) @@ -36,15 +41,15 @@ const ( KeySecretKey = "cmpv2Issuer-key.pem" CertSecretKey = "cmpv2Issuer-cert.pem" CacertSecretKey = "cacert.pem" - Namespace = "default" - IssuerObjectName = "fakeIssuer" + Namespace = "onap" + IssuerObjectName = "cmpv2-issuer" Kind = "CMPv2Issuer" APIVersion = "v1" + PrivateKeySecret = "privateKeySecretName" ) func GetValidIssuerWithSecret() (cmpv2api.CMPv2Issuer, v1.Secret) { issuer := cmpv2api.CMPv2Issuer{ - TypeMeta: metav1.TypeMeta{ APIVersion: APIVersion, Kind: Kind, @@ -55,8 +60,8 @@ func GetValidIssuerWithSecret() (cmpv2api.CMPv2Issuer, v1.Secret) { }, Spec: GetValidCMPv2IssuerSpec(), } - secret := v1.Secret{ + secret := v1.Secret{ Data: map[string][]byte{ KeySecretKey: KeyBytes, CertSecretKey: CertBytes, @@ -87,3 +92,28 @@ func GetValidCMPv2IssuerSpec() cmpv2api.CMPv2IssuerSpec { return issuerSpec } +func GetScheme() *runtime.Scheme { + scheme := runtime.NewScheme() + _ = scheme2.AddToScheme(scheme) + _ = cmapi.AddToScheme(scheme) + _ = cmpv2api.AddToScheme(scheme) + return scheme +} + +func GetFakeRequest(objectName string) reconcile.Request { + fakeRequest := reconcile.Request{ + NamespacedName: CreateIssuerNamespaceName(Namespace, objectName), + } + return fakeRequest +} + +func GetIssuerStoreKey() types.NamespacedName { + return CreateIssuerNamespaceName(Namespace, IssuerObjectName) +} + +func CreateIssuerNamespaceName(namespace string, name string) types.NamespacedName { + return types.NamespacedName{ + Namespace: namespace, + Name: name, + } +} diff --git a/certServiceK8sExternalProvider/src/testdata/utils.go b/certServiceK8sExternalProvider/src/testdata/utils.go new file mode 100644 index 00000000..af22195d --- /dev/null +++ b/certServiceK8sExternalProvider/src/testdata/utils.go @@ -0,0 +1,56 @@ +/* + * ============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 testdata + +import ( + "bytes" + "io/ioutil" + "log" + "testing" +) + +func ReadFile(filename string) []byte { + certRequest, err := ioutil.ReadFile(filename) + if err != nil { + log.Fatal(err) + } + return certRequest +} + +func VerifyCertsAreEqualToExpected(t *testing.T, signedPEM []byte, trustedCAs []byte) { + expectedSignedFilename := "../cmpv2provisioner/testdata/expected_signed.pem" + expectedTrustedFilename := "../cmpv2provisioner/testdata/expected_trusted.pem" + + VerifyThatConditionIsTrue(AreSlicesEqual(signedPEM, + ReadFile(expectedSignedFilename)), "Signed pem is different than expected.", t) + VerifyThatConditionIsTrue(AreSlicesEqual(trustedCAs, + ReadFile(expectedTrustedFilename)), "Trusted CAs pem is different than expected.", t) +} + +func AreSlicesEqual(slice1 []byte, slice2 []byte) bool { + return bytes.Compare(slice1, slice2) == 0 +} + +func VerifyThatConditionIsTrue(cond bool, message string, t *testing.T) { + if !cond { + t.Fatal(message) + } +} |