summaryrefslogtreecommitdiffstats
path: root/certService/src/test
diff options
context:
space:
mode:
authorBartosz Gardziejewski <bartosz.gardziejewski@nokia.com>2020-02-12 11:53:42 +0100
committerBartosz Gardziejewski <bartosz.gardziejewski@nokia.com>2020-02-13 10:53:19 +0100
commit1d90088826d5bb2f141be9683d9e31b606fca978 (patch)
treee2cf2fb2f81f607ed0f8142ee08bd9879355cbcb /certService/src/test
parent41a5418f3d93fb09d5544c2070b42d5d5f4e216a (diff)
Return hardcoded CA certs and certification chain.
Issue-ID: AAF-995 Signed-off-by: Bartosz Gardziejewski <bartosz.gardziejewski@nokia.com> Change-Id: I38b498c4deeedc4ea4323065c5f7b5ddd137209f
Diffstat (limited to 'certService/src/test')
-rw-r--r--certService/src/test/java/org/onap/aaf/certservice/api/CertificationServiceTest.java53
-rw-r--r--certService/src/test/java/org/onap/aaf/certservice/certification/CertificationModelFactoryTest.java63
-rw-r--r--certService/src/test/java/org/onap/aaf/certservice/certification/CsrModelFactoryTest.java3
-rw-r--r--certService/src/test/java/org/onap/aaf/certservice/certification/PemObjectFactoryTest.java5
-rw-r--r--certService/src/test/java/org/onap/aaf/certservice/certification/TestUtils.java6
-rw-r--r--certService/src/test/java/org/onap/aaf/certservice/certification/model/CsrModelTest.java10
6 files changed, 123 insertions, 17 deletions
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<String> 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<String> 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<String> 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());
diff --git a/certService/src/test/java/org/onap/aaf/certservice/certification/CertificationModelFactoryTest.java b/certService/src/test/java/org/onap/aaf/certservice/certification/CertificationModelFactoryTest.java
new file mode 100644
index 00000000..2953af78
--- /dev/null
+++ b/certService/src/test/java/org/onap/aaf/certservice/certification/CertificationModelFactoryTest.java
@@ -0,0 +1,63 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PROJECT
+ * ================================================================================
+ * 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 org.onap.aaf.certservice.certification;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.onap.aaf.certservice.certification.model.CertificationModel;
+import org.onap.aaf.certservice.certification.model.CsrModel;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.onap.aaf.certservice.certification.CertificationData.CA_CERT;
+import static org.onap.aaf.certservice.certification.CertificationData.ENTITY_CERT;
+import static org.onap.aaf.certservice.certification.CertificationData.INTERMEDIATE_CERT;
+import static org.onap.aaf.certservice.certification.CertificationData.EXTRA_CA_CERT;
+
+
+class CertificationModelFactoryTest {
+
+
+ private CertificationModelFactory certificationModelFactory;
+
+ @BeforeEach
+ void setUp() {
+ certificationModelFactory = new CertificationModelFactory();
+ }
+
+ @Test
+ void shouldCreateProperCertificationModelWhenGivenProperCsrModelAndCaName() {
+ // given
+ final String testCaName = "testCA";
+ CsrModel mockedCsrModel = mock(CsrModel.class);
+
+ // when
+ CertificationModel certificationModel = certificationModelFactory.createCertificationModel(mockedCsrModel ,testCaName);
+
+ //then
+ assertEquals(2, certificationModel.getCertificateChain().size());
+ assertThat(certificationModel.getCertificateChain()).contains(INTERMEDIATE_CERT, ENTITY_CERT);
+ assertEquals(2, certificationModel.getTrustedCertificates().size());
+ assertThat(certificationModel.getTrustedCertificates()).contains(CA_CERT, EXTRA_CA_CERT);
+ }
+
+}
diff --git a/certService/src/test/java/org/onap/aaf/certservice/certification/CsrModelFactoryTest.java b/certService/src/test/java/org/onap/aaf/certservice/certification/CsrModelFactoryTest.java
index 8b5f5dc5..065c7a0e 100644
--- a/certService/src/test/java/org/onap/aaf/certservice/certification/CsrModelFactoryTest.java
+++ b/certService/src/test/java/org/onap/aaf/certservice/certification/CsrModelFactoryTest.java
@@ -25,6 +25,7 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
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.model.CsrModel;
import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -44,7 +45,7 @@ class CsrModelFactoryTest {
}
@Test
- void shouldDecryptCsrAndReturnStringWithDataAboutIt() throws CsrDecryptionException {
+ void shouldDecryptCsrAndReturnStringWithDataAboutIt() throws DecryptionException {
// given
String encoderCsr = new String(Base64.encode(TEST_CSR.getBytes()));
String encoderPK = new String(Base64.encode(TEST_PK.getBytes()));
diff --git a/certService/src/test/java/org/onap/aaf/certservice/certification/PemObjectFactoryTest.java b/certService/src/test/java/org/onap/aaf/certservice/certification/PemObjectFactoryTest.java
index 2fa747db..479c375b 100644
--- a/certService/src/test/java/org/onap/aaf/certservice/certification/PemObjectFactoryTest.java
+++ b/certService/src/test/java/org/onap/aaf/certservice/certification/PemObjectFactoryTest.java
@@ -24,6 +24,7 @@ import org.bouncycastle.util.io.pem.PemObject;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.onap.aaf.certservice.certification.exceptions.CsrDecryptionException;
+import org.onap.aaf.certservice.certification.exceptions.PemDecryptionException;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -44,7 +45,7 @@ class PemObjectFactoryTest {
}
@Test
- void shouldTransformStringInToPemObjectAndBackToString() throws CsrDecryptionException {
+ void shouldTransformStringInToPemObjectAndBackToString() throws PemDecryptionException {
// when
PemObject pemObject = pemObjectFactory.createPemObject(TEST_PEM);
String parsedPemObject = pemObjectToString(pemObject);
@@ -57,7 +58,7 @@ class PemObjectFactoryTest {
void shouldThrowExceptionWhenParsingPemFailed() {
// when
Exception exception = assertThrows(
- CsrDecryptionException.class, () -> pemObjectFactory.createPemObject(TEST_WRONG_PEM)
+ PemDecryptionException.class, () -> pemObjectFactory.createPemObject(TEST_WRONG_PEM)
);
String expectedMessage = "Unable to create PEM";
diff --git a/certService/src/test/java/org/onap/aaf/certservice/certification/TestUtils.java b/certService/src/test/java/org/onap/aaf/certservice/certification/TestUtils.java
index 156cf8ba..c2824c80 100644
--- a/certService/src/test/java/org/onap/aaf/certservice/certification/TestUtils.java
+++ b/certService/src/test/java/org/onap/aaf/certservice/certification/TestUtils.java
@@ -22,7 +22,7 @@ package org.onap.aaf.certservice.certification;
import org.bouncycastle.util.io.pem.PemObject;
import org.bouncycastle.util.io.pem.PemWriter;
-import org.onap.aaf.certservice.certification.exceptions.CsrDecryptionException;
+import org.onap.aaf.certservice.certification.exceptions.PemDecryptionException;
import java.io.IOException;
import java.io.StringWriter;
@@ -33,7 +33,7 @@ public final class TestUtils {
private TestUtils() {
}
- public static String pemObjectToString(PemObject pemObject) throws CsrDecryptionException {
+ public static String pemObjectToString(PemObject pemObject) throws PemDecryptionException {
try (StringWriter output = new StringWriter()) {
PemWriter pemWriter = new PemWriter(output);
pemWriter.writeObject(pemObject);
@@ -41,7 +41,7 @@ public final class TestUtils {
return output.getBuffer().toString();
} catch (IOException e) {
- throw new CsrDecryptionException("Writing PAM Object to string failed", e);
+ throw new PemDecryptionException("Writing PAM Object to string failed", e);
}
}
}
diff --git a/certService/src/test/java/org/onap/aaf/certservice/certification/model/CsrModelTest.java b/certService/src/test/java/org/onap/aaf/certservice/certification/model/CsrModelTest.java
index c6ff2a9f..9d748150 100644
--- a/certService/src/test/java/org/onap/aaf/certservice/certification/model/CsrModelTest.java
+++ b/certService/src/test/java/org/onap/aaf/certservice/certification/model/CsrModelTest.java
@@ -26,6 +26,8 @@ import org.bouncycastle.util.io.pem.PemObject;
import org.junit.jupiter.api.Test;
import org.onap.aaf.certservice.certification.PemObjectFactory;
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 java.io.IOException;
@@ -44,7 +46,7 @@ class CsrModelTest {
@Test
- void shouldByConstructedAndReturnProperFields() throws CsrDecryptionException, IOException {
+ void shouldByConstructedAndReturnProperFields() throws DecryptionException, IOException {
// given
PemObject testPublicKey = generateTestPublicKey();
@@ -68,7 +70,7 @@ class CsrModelTest {
}
@Test
- void shouldThrowExceptionWhenKeyIsNotCorrect() throws IOException, CsrDecryptionException {
+ void shouldThrowExceptionWhenKeyIsNotCorrect() throws PemDecryptionException ,IOException {
// given
PemObjectFactory pemObjectFactory = new PemObjectFactory();
PKCS10CertificationRequest testCsr = mock(PKCS10CertificationRequest.class);
@@ -93,7 +95,7 @@ class CsrModelTest {
assertTrue(actualMessage.contains(expectedMessage));
}
- private CsrModel generateTestCsrModel() throws CsrDecryptionException, IOException {
+ private CsrModel generateTestCsrModel() throws PemDecryptionException, IOException {
PemObjectFactory pemObjectFactory = new PemObjectFactory();
PKCS10CertificationRequest testCsr = new PKCS10CertificationRequest(
pemObjectFactory.createPemObject(TEST_CSR).getContent()
@@ -102,7 +104,7 @@ class CsrModelTest {
return new CsrModel(testCsr, testPrivateKey);
}
- private PemObject generateTestPublicKey() throws CsrDecryptionException, IOException {
+ private PemObject generateTestPublicKey() throws PemDecryptionException, IOException {
PemObjectFactory pemObjectFactory = new PemObjectFactory();
PKCS10CertificationRequest testCsr = new PKCS10CertificationRequest(
pemObjectFactory.createPemObject(TEST_CSR).getContent()