From 1d90088826d5bb2f141be9683d9e31b606fca978 Mon Sep 17 00:00:00 2001 From: Bartosz Gardziejewski Date: Wed, 12 Feb 2020 11:53:42 +0100 Subject: Return hardcoded CA certs and certification chain. Issue-ID: AAF-995 Signed-off-by: Bartosz Gardziejewski Change-Id: I38b498c4deeedc4ea4323065c5f7b5ddd137209f --- .../certservice/api/CertificationServiceTest.java | 53 +++++++++++++++++++--- 1 file changed, 46 insertions(+), 7 deletions(-) (limited to 'certService/src/test/java/org/onap/aaf/certservice/api/CertificationServiceTest.java') diff --git a/certService/src/test/java/org/onap/aaf/certservice/api/CertificationServiceTest.java b/certService/src/test/java/org/onap/aaf/certservice/api/CertificationServiceTest.java index 9367fcb1..8ee88db5 100644 --- a/certService/src/test/java/org/onap/aaf/certservice/api/CertificationServiceTest.java +++ b/certService/src/test/java/org/onap/aaf/certservice/api/CertificationServiceTest.java @@ -20,19 +20,26 @@ package org.onap.aaf.certservice.api; +import com.google.gson.Gson; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +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.exceptions.CsrDecryptionException; +import org.onap.aaf.certservice.certification.exceptions.DecryptionException; +import org.onap.aaf.certservice.certification.exceptions.PemDecryptionException; +import org.onap.aaf.certservice.certification.model.CertificationModel; import org.onap.aaf.certservice.certification.model.CsrModel; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import java.io.IOException; +import java.util.Arrays; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; @@ -47,43 +54,75 @@ class CertificationServiceTest { @Mock private CsrModelFactory csrModelFactory; + @Mock + private CertificationModelFactory certificationModelFactory; + @BeforeEach void serUp() { MockitoAnnotations.initMocks(this); - certificationService = new CertificationService(csrModelFactory); + certificationService = new CertificationService(csrModelFactory, certificationModelFactory); } @Test - void shouldReturnDataAboutCsrBaseOnEncodedParameters() throws CsrDecryptionException { + void shouldReturnDataAboutCsrBaseOnEncodedParameters() throws DecryptionException { // given final String testStringCsr = "testData"; + final String testCaName = "TestCa"; CsrModel mockedCsrModel = mock(CsrModel.class); + 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)) + .thenReturn(testCertificationModel); // when ResponseEntity testResponse = - certificationService.signCertificate("TestCa", "encryptedCSR", "encryptedPK"); + certificationService.signCertificate(testCaName, "encryptedCSR", "encryptedPK"); + + CertificationModel responseCertificationModel = new Gson().fromJson(testResponse.getBody(), CertificationModel.class); // then assertEquals(HttpStatus.OK, testResponse.getStatusCode()); + assertThat(responseCertificationModel + ).isEqualToComparingFieldByField(testCertificationModel); + + } + + @Test + void shouldReturnBadRequestWhenCreatingCsrModelFails() throws DecryptionException { + // given + when(csrModelFactory.createCsrModel(any(StringBase64.class), any(StringBase64.class))) + .thenThrow(new CsrDecryptionException("CSR creation fail",new IOException())); + + // when + ResponseEntity testResponse = + certificationService.signCertificate("TestCa", "encryptedCSR", "encryptedPK"); + + String expectedMessage = "Wrong certificate signing request (CSR) format"; + + // then + assertEquals(HttpStatus.BAD_REQUEST, testResponse.getStatusCode()); assertTrue( - testResponse.toString().contains(testStringCsr) + testResponse.toString().contains(expectedMessage) ); + } @Test - void shouldReturnBadRequestWhenCreatingCsrModelFails() throws CsrDecryptionException { + void shouldReturnBadRequestWhenCreatingPemModelFails() throws DecryptionException { // given when(csrModelFactory.createCsrModel(any(StringBase64.class), any(StringBase64.class))) - .thenThrow(new CsrDecryptionException("creation fail",new IOException())); + .thenThrow(new PemDecryptionException("PEM creation fail",new IOException())); // when ResponseEntity testResponse = certificationService.signCertificate("TestCa", "encryptedCSR", "encryptedPK"); - String expectedMessage = "Wrong certificate signing request (CSR) format"; + String expectedMessage = "Wrong key (PK) format"; // then assertEquals(HttpStatus.BAD_REQUEST, testResponse.getStatusCode()); -- cgit 1.2.3-korg