diff options
Diffstat (limited to 'certService/src/test/java/org/onap/aaf/certservice/api/CertificationControllerTest.java')
-rw-r--r-- | certService/src/test/java/org/onap/aaf/certservice/api/CertificationControllerTest.java | 96 |
1 files changed, 56 insertions, 40 deletions
diff --git a/certService/src/test/java/org/onap/aaf/certservice/api/CertificationControllerTest.java b/certService/src/test/java/org/onap/aaf/certservice/api/CertificationControllerTest.java index 2fc6d665..802b2ea0 100644 --- a/certService/src/test/java/org/onap/aaf/certservice/api/CertificationControllerTest.java +++ b/certService/src/test/java/org/onap/aaf/certservice/api/CertificationControllerTest.java @@ -23,12 +23,9 @@ package org.onap.aaf.certservice.api; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import com.google.gson.Gson; -import java.io.IOException; import java.util.Arrays; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -36,56 +33,54 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import org.onap.aaf.certservice.certification.CertificationModelFactory; -import org.onap.aaf.certservice.certification.CsrModelFactory; -import org.onap.aaf.certservice.certification.CsrModelFactory.StringBase64; +import org.onap.aaf.certservice.certification.exception.Cmpv2ClientAdapterException; +import org.onap.aaf.certservice.certification.exception.Cmpv2ServerNotFoundException; import org.onap.aaf.certservice.certification.exception.CsrDecryptionException; import org.onap.aaf.certservice.certification.exception.DecryptionException; import org.onap.aaf.certservice.certification.exception.KeyDecryptionException; import org.onap.aaf.certservice.certification.model.CertificationModel; -import org.onap.aaf.certservice.certification.model.CsrModel; +import org.onap.aaf.certservice.cmpv2client.exceptions.CmpClientException; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; - @ExtendWith(MockitoExtension.class) class CertificationControllerTest { - private CertificationController certificationController; + private static final String TEST_CA_NAME = "TestCa"; + private static final String TEST_ENCODED_CSR = "encodedCSR"; + private static final String TEST_ENCODED_PK = "encodedPK"; + private static final String TEST_WRONG_ENCODED_CSR = "wrongEncodedCSR"; + private static final String TEST_WRONG_ENCODED_PK = "wrongEncodedPK"; + private static final String TEST_WRONG_CA_NAME = "wrongTestCa"; - @Mock - private CsrModelFactory csrModelFactory; + private CertificationController certificationController; @Mock private CertificationModelFactory certificationModelFactory; @BeforeEach - void setUp() { - certificationController = new CertificationController(csrModelFactory, certificationModelFactory); + void serUp() { + certificationController = new CertificationController(certificationModelFactory); } @Test - void shouldReturnDataAboutCsrBaseOnEncodedParameters() throws DecryptionException { - // given - final String testStringCsr = "testData"; - final String testCaName = "TestCa"; - CsrModel mockedCsrModel = mock(CsrModel.class); + void shouldReturnDataAboutCsrBaseOnEncodedParameters() + throws DecryptionException, CmpClientException, Cmpv2ClientAdapterException { + // Given CertificationModel testCertificationModel = new CertificationModel( Arrays.asList("ENTITY_CERT", "INTERMEDIATE_CERT"), Arrays.asList("CA_CERT", "EXTRA_CA_CERT") ); - when(mockedCsrModel.toString()).thenReturn(testStringCsr); - when(csrModelFactory.createCsrModel(any(StringBase64.class), any(StringBase64.class))) - .thenReturn(mockedCsrModel); - when(certificationModelFactory.createCertificationModel(mockedCsrModel, testCaName)) + when(certificationModelFactory.createCertificationModel(TEST_ENCODED_CSR, TEST_ENCODED_PK, TEST_CA_NAME)) .thenReturn(testCertificationModel); - // when + // When ResponseEntity<String> testResponse = - certificationController.signCertificate(testCaName, "encryptedCSR", "encryptedPK"); + certificationController.signCertificate(TEST_CA_NAME, TEST_ENCODED_CSR, TEST_ENCODED_PK); CertificationModel responseCertificationModel = new Gson().fromJson(testResponse.getBody(), CertificationModel.class); - // then + // Then assertEquals(HttpStatus.OK, testResponse.getStatusCode()); assertThat(responseCertificationModel ).isEqualToComparingFieldByField(testCertificationModel); @@ -93,41 +88,62 @@ class CertificationControllerTest { } @Test - void shouldThrowCsrDecryptionExceptionWhenCreatingCsrModelFails() throws DecryptionException { - // given + void shouldThrowCsrDecryptionExceptionWhenCreatingCsrModelFails() + throws DecryptionException, CmpClientException, Cmpv2ClientAdapterException { + // Given String expectedMessage = "Incorrect CSR, decryption failed"; - when(csrModelFactory.createCsrModel(any(StringBase64.class), any(StringBase64.class))) - .thenThrow(new CsrDecryptionException(expectedMessage,new IOException())); + when(certificationModelFactory.createCertificationModel(TEST_WRONG_ENCODED_CSR, TEST_ENCODED_PK, TEST_CA_NAME)) + .thenThrow(new CsrDecryptionException(expectedMessage)); - // when + // When Exception exception = assertThrows( - CsrDecryptionException.class, () -> certificationController. - signCertificate("TestCa", "encryptedCSR", "encryptedPK") + CsrDecryptionException.class, () -> + certificationController.signCertificate(TEST_CA_NAME, TEST_WRONG_ENCODED_CSR, TEST_ENCODED_PK) ); String actualMessage = exception.getMessage(); - // then + // Then assertEquals(expectedMessage, actualMessage); } @Test - void shouldThrowPemDecryptionExceptionWhenCreatingPemModelFails() throws DecryptionException { - // given + void shouldThrowPemDecryptionExceptionWhenCreatingPemModelFails() + throws DecryptionException, CmpClientException, Cmpv2ClientAdapterException { + // Given String expectedMessage = "Incorrect PEM, decryption failed"; - when(csrModelFactory.createCsrModel(any(StringBase64.class), any(StringBase64.class))) - .thenThrow(new KeyDecryptionException(expectedMessage,new IOException())); + when(certificationModelFactory.createCertificationModel(TEST_ENCODED_CSR, TEST_WRONG_ENCODED_PK, TEST_CA_NAME)) + .thenThrow(new KeyDecryptionException(expectedMessage)); - // when + // When Exception exception = assertThrows( - KeyDecryptionException.class, () -> certificationController. - signCertificate("TestCa", "encryptedCSR", "encryptedPK") + KeyDecryptionException.class, () -> + certificationController.signCertificate(TEST_CA_NAME, TEST_ENCODED_CSR, TEST_WRONG_ENCODED_PK) ); String actualMessage = exception.getMessage(); - // then + // Then assertEquals(expectedMessage, actualMessage); } + @Test + void shouldThrowCmpv2ServerNotFoundWhenGivenWrongCaName() + throws DecryptionException, CmpClientException, Cmpv2ClientAdapterException { + // Given + String expectedMessage = "No server found for given CA name"; + when(certificationModelFactory.createCertificationModel(TEST_ENCODED_CSR, TEST_ENCODED_PK, TEST_WRONG_CA_NAME)) + .thenThrow(new Cmpv2ServerNotFoundException(expectedMessage)); + + // When + Exception exception = assertThrows( + Cmpv2ServerNotFoundException.class, () -> + certificationController.signCertificate(TEST_WRONG_CA_NAME, TEST_ENCODED_CSR, TEST_ENCODED_PK) + ); + + String actualMessage = exception.getMessage(); + + // Then + assertEquals(expectedMessage, actualMessage); + } } |