[OOM-CERT-SERVICE] Add CertificateDecriptionException handler 18/122618/3
authorPiotr Marcinkiewicz <piotr.marcinkiewicz@nokia.com>
Wed, 14 Jul 2021 07:45:18 +0000 (09:45 +0200)
committerPiotr Marcinkiewicz <piotr.marcinkiewicz@nokia.com>
Mon, 19 Jul 2021 06:46:32 +0000 (06:46 +0000)
Issue-ID: OOM-2753
Signed-off-by: Piotr Marcinkiewicz <piotr.marcinkiewicz@nokia.com>
Change-Id: If4f705b11cdaf1c98f49875b40eb970563d4c3dd

certService/src/main/java/org/onap/oom/certservice/api/advice/CertificationExceptionAdvice.java
certService/src/test/java/org/onap/oom/certservice/api/advice/CertificationExceptionAdviceTest.java

index 1c6c3a0..e3fa1cb 100644 (file)
@@ -22,6 +22,7 @@
 package org.onap.oom.certservice.api.advice;
 
 import org.onap.oom.certservice.api.CertificationController;
+import org.onap.oom.certservice.certification.exception.CertificateDecryptionException;
 import org.onap.oom.certservice.certification.exception.Cmpv2ClientAdapterException;
 import org.onap.oom.certservice.certification.exception.Cmpv2ServerNotFoundException;
 import org.onap.oom.certservice.certification.exception.CsrDecryptionException;
@@ -59,6 +60,15 @@ public final class CertificationExceptionAdvice {
         );
     }
 
+    @ExceptionHandler(value = CertificateDecryptionException.class)
+    public ResponseEntity<ErrorResponseModel> handle(CertificateDecryptionException exception) {
+        LOGGER.error("Exception occurred decoding certificate:", exception);
+        return getErrorResponseEntity(
+                "Wrong certificate format",
+                HttpStatus.BAD_REQUEST
+        );
+    }
+
     @ExceptionHandler(value = Cmpv2ServerNotFoundException.class)
     public ResponseEntity<ErrorResponseModel> handle(Cmpv2ServerNotFoundException exception) {
         LOGGER.error("Exception occurred selecting CMPv2 server:", exception);
index 9e6a6ce..698ded8 100644 (file)
@@ -27,6 +27,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.onap.oom.certservice.certification.exception.CertificateDecryptionException;
 import org.onap.oom.certservice.certification.exception.Cmpv2ClientAdapterException;
 import org.onap.oom.certservice.certification.exception.Cmpv2ServerNotFoundException;
 import org.onap.oom.certservice.certification.exception.CsrDecryptionException;
@@ -146,4 +147,19 @@ class CertificationExceptionAdviceTest {
         assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, response.getStatusCode());
         assertTrue(response.getBody().getErrorMessage().startsWith(expectedMessage));
     }
+
+    @Test
+    void shouldReturnResponseEntityWithCertificateDecryptionMessage() {
+        // Given
+        String expectedMessage = "Wrong certificate format";
+        CertificateDecryptionException exception = new CertificateDecryptionException("Incorrect certificate, decryption failed");
+
+        // When
+        ResponseEntity<ErrorResponseModel> response = certificationExceptionAdvice.handle(exception);
+
+        // Then
+        assertEquals(HttpStatus.BAD_REQUEST, response.getStatusCode());
+        assertEquals(expectedMessage, response.getBody().getErrorMessage());
+    }
+
 }