[OOM-K8S-CERT-EXTERNAL-PROVIDER] Add logging of supported CSR properties
[oom/platform/cert-service.git] / certServiceK8sExternalProvider / src / cmpv2controller / logger / certificate_request_logger_test.go
index 7d1abc2..ea1076d 100644 (file)
@@ -33,12 +33,18 @@ import (
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        "k8s.io/klog/v2"
        "k8s.io/klog/v2/klogr"
+
+       x509utils "onap.org/oom-certservice/k8s-external-provider/src/x509"
 )
 
 var checkedLogMessages = [7]string{"Property 'duration'", "Property 'usages'", "Property 'ipAddresses'",
        "Property 'isCA'", "Property 'subject.streetAddress'", "Property 'subject.postalCodes'",
        "Property 'subject.serialNumber'"}
 
+var supportedProperties = [7]string{"Property 'organization'", "Property 'organization unit'", "Property 'country'",
+       "Property 'state'", "Property 'location'", "Property 'dns names'"}
+
+
 func TestMain(m *testing.M) {
        klog.InitFlags(nil)
        flag.CommandLine.Set("v", "10")
@@ -55,8 +61,13 @@ func TestLogShouldNotProvideInformationAboutSkippedPropertiesIfNotExistInCSR(t *
        request := getCertificateRequestWithoutSkippedProperties()
        tmpWriteBuffer := getLogBuffer()
 
+       csr, err := x509utils.DecodeCSR(request.Spec.Request)
+       if err != nil {
+               assert.FailNow(t, "Could not parse Certificate Sign Request")
+       }
+
        //when
-       LogCertRequestProperties(logger, request)
+       LogCertRequestProperties(logger, request, csr)
        closeLogBuffer()
        logsArray := convertBufferToStringArray(tmpWriteBuffer)
        //then
@@ -71,8 +82,13 @@ func TestLogShouldProvideInformationAboutSkippedPropertiesIfExistInCSR(t *testin
        request := getCertificateRequestWithSkippedProperties()
        tmpWriteBuffer := getLogBuffer()
 
+       csr, err := x509utils.DecodeCSR(request.Spec.Request)
+       if err != nil {
+               assert.FailNow(t, "Could not parse Certificate Sign Request")
+       }
+
        //when
-       LogCertRequestProperties(logger, request)
+       LogCertRequestProperties(logger, request, csr)
        closeLogBuffer()
        logsArray := convertBufferToStringArray(tmpWriteBuffer)
 
@@ -82,6 +98,28 @@ func TestLogShouldProvideInformationAboutSkippedPropertiesIfExistInCSR(t *testin
        }
 }
 
+func TestLogShouldListSupportedProperties(t *testing.T) {
+       //given
+       logger := klogr.New()
+       request := getCertificateRequestWithoutSkippedProperties()
+       tmpWriteBuffer := getLogBuffer()
+
+       csr, err := x509utils.DecodeCSR(request.Spec.Request)
+       if err != nil {
+               assert.FailNow(t, "Could not parse Certificate Sign Request")
+       }
+
+       //when
+       LogCertRequestProperties(logger, request, csr)
+       closeLogBuffer()
+       logsArray := convertBufferToStringArray(tmpWriteBuffer)
+
+       //then
+       for _, logMsg := range supportedProperties {
+               assert.True(t, logsContainExpectedMessage(logsArray, logMsg), "Logs not contain: "+logMsg)
+       }
+}
+
 func getCertificateRequestWithoutSkippedProperties() *cmapi.CertificateRequest {
        request := new(cmapi.CertificateRequest)
        request.Spec.Request = []byte(csrWithoutSkippedProperties)