Remove CSRMeta class dependency
[oom/platform/cert-service.git] / certService / src / test / java / org / onap / aaf / certservice / cmpv2client / Cmpv2ClientTest.java
index 3f5a254..bea6b6a 100644 (file)
@@ -30,7 +30,6 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.security.KeyFactory;
 import java.security.KeyPair;
-import java.security.KeyPairGenerator;
 import java.security.NoSuchAlgorithmException;
 import java.security.NoSuchProviderException;
 import java.security.PrivateKey;
@@ -42,7 +41,7 @@ import java.security.spec.PKCS8EncodedKeySpec;
 import java.security.spec.X509EncodedKeySpec;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 
@@ -50,15 +49,18 @@ import org.apache.commons.io.IOUtils;
 import org.apache.http.HttpEntity;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.impl.client.CloseableHttpClient;
-import org.bouncycastle.cert.CertException;
+import org.bouncycastle.asn1.x500.X500Name;
+import org.bouncycastle.asn1.x500.X500NameBuilder;
+import org.bouncycastle.asn1.x500.style.BCStyle;
 import org.bouncycastle.jce.provider.BouncyCastleProvider;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mock;
+import org.onap.aaf.certservice.certification.configuration.model.Authentication;
+import org.onap.aaf.certservice.certification.configuration.model.Cmpv2Server;
+import org.onap.aaf.certservice.certification.model.CsrModel;
 import org.onap.aaf.certservice.cmpv2client.exceptions.CmpClientException;
-import org.onap.aaf.certservice.cmpv2client.external.CsrMeta;
-import org.onap.aaf.certservice.cmpv2client.external.Rdn;
 import org.onap.aaf.certservice.cmpv2client.impl.CmpClientImpl;
 
 class Cmpv2ClientTest {
@@ -67,12 +69,11 @@ class Cmpv2ClientTest {
         Security.addProvider(new BouncyCastleProvider());
     }
 
-    private CsrMeta csrMeta;
+    private CsrModel csrModel;
+    private Cmpv2Server server;
     private Date notBefore;
     private Date notAfter;
-
-    @Mock
-    KeyPairGenerator kpg;
+    private X500Name dn;
 
     @Mock
     X509Certificate cert;
@@ -87,22 +88,15 @@ class Cmpv2ClientTest {
     HttpEntity httpEntity;
 
     private static KeyPair keyPair;
-    private static ArrayList<Rdn> rdns;
 
     @BeforeEach
     void setUp()
             throws NoSuchProviderException, NoSuchAlgorithmException, IOException,
             InvalidKeySpecException {
-        KeyPairGenerator keyGenerator;
-        keyGenerator = KeyPairGenerator.getInstance("RSA", BouncyCastleProvider.PROVIDER_NAME);
-        keyGenerator.initialize(2048);
         keyPair = loadKeyPair();
-        rdns = new ArrayList<>();
-        try {
-            rdns.add(new Rdn("O=CommonCompany"));
-        } catch (CertException e) {
-            e.printStackTrace();
-        }
+        dn = new X500NameBuilder()
+                .addRDN(BCStyle.O, "TestOrganization")
+                .build();
         initMocks(this);
     }
 
@@ -133,15 +127,10 @@ class Cmpv2ClientTest {
         // given
         Date beforeDate = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse("2019/11/11 12:00:00");
         Date afterDate = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse("2020/11/11 12:00:00");
-        setCsrMetaValuesAndDateValues(
-                rdns,
-                "CN=CommonName",
-                "CN=ManagementCA",
-                "CommonName.com",
-                "CommonName@cn.com",
+        setCsrModelAndServerValues(
                 "mypassword",
-                "http://127.0.0.1/ejbca/publicweb/cmp/cmp",
                 "senderKID",
+                "http://127.0.0.1/ejbca/publicweb/cmp/cmp",
                 beforeDate,
                 afterDate);
         when(httpClient.execute(any())).thenReturn(httpResponse);
@@ -164,7 +153,7 @@ class Cmpv2ClientTest {
         CmpClientImpl cmpClient = spy(new CmpClientImpl(httpClient));
         // when
         List<List<X509Certificate>> cmpClientResult =
-                cmpClient.createCertificate("data", "RA", csrMeta, cert, notBefore, notAfter);
+                cmpClient.createCertificate("data", "RA", csrModel, server, cert, notBefore, notAfter);
         // then
         assertNotNull(cmpClientResult);
     }
@@ -176,15 +165,10 @@ class Cmpv2ClientTest {
         // given
         Date beforeDate = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse("2019/11/11 12:00:00");
         Date afterDate = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse("2020/11/11 12:00:00");
-        setCsrMetaValuesAndDateValues(
-                rdns,
-                "CN=CommonName",
-                "CN=ManagementCA",
-                "CommonName.com",
-                "CommonName@cn.com",
+        setCsrModelAndServerValues(
                 "password",
-                "http://127.0.0.1/ejbca/publicweb/cmp/cmp",
                 "senderKID",
+                "http://127.0.0.1/ejbca/publicweb/cmp/cmp",
                 beforeDate,
                 afterDate);
         when(httpClient.execute(any())).thenReturn(httpResponse);
@@ -208,7 +192,7 @@ class Cmpv2ClientTest {
         // then
         Assertions.assertThrows(
                 CmpClientException.class,
-                () -> cmpClient.createCertificate("data", "RA", csrMeta, cert, notBefore, notAfter));
+                () -> cmpClient.createCertificate("data", "RA", csrModel, server, cert, notBefore, notAfter));
     }
 
     @Test
@@ -217,15 +201,10 @@ class Cmpv2ClientTest {
         // given
         Date beforeDate = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse("2019/11/11 12:00:00");
         Date afterDate = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse("2020/11/11 12:00:00");
-        setCsrMetaValuesAndDateValues(
-                rdns,
-                "CN=CommonName",
-                "CN=ManagementCA",
-                "CommonName.com",
-                "CommonName@cn.com",
+        setCsrModelAndServerValues(
                 "password",
-                "http://127.0.0.1/ejbca/publicweb/cmp/cmp",
                 "senderKID",
+                "http://127.0.0.1/ejbca/publicweb/cmp/cmp",
                 beforeDate,
                 afterDate);
         when(httpClient.execute(any())).thenReturn(httpResponse);
@@ -250,7 +229,7 @@ class Cmpv2ClientTest {
         // then
         Assertions.assertThrows(
                 CmpClientException.class,
-                () -> cmpClient.createCertificate("data", "RA", csrMeta, cert, notBefore, notAfter));
+                () -> cmpClient.createCertificate("data", "RA", csrModel, server, cert, notBefore, notAfter));
     }
 
     @Test
@@ -259,22 +238,17 @@ class Cmpv2ClientTest {
         // given
         Date beforeDate = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse("2020/11/11 12:00:00");
         Date afterDate = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse("2019/11/11 12:00:00");
-        setCsrMetaValuesAndDateValues(
-                rdns,
-                "CN=CommonName",
-                "CN=ManagementCA",
-                "CommonName.com",
-                "CommonName@cn.com",
+        setCsrModelAndServerValues(
                 "password",
-                "http://127.0.0.1/ejbca/publicweb/cmp/cmp",
                 "senderKID",
+                "http://127.0.0.1/ejbca/publicweb/cmp/cmp",
                 beforeDate,
                 afterDate);
         CmpClientImpl cmpClient = new CmpClientImpl(httpClient);
         // then
         Assertions.assertThrows(
                 IllegalArgumentException.class,
-                () -> cmpClient.createCertificate("data", "RA", csrMeta, cert, notBefore, notAfter));
+                () -> cmpClient.createCertificate("data", "RA", csrModel, server, cert, notBefore, notAfter));
     }
 
     @Test
@@ -283,15 +257,10 @@ class Cmpv2ClientTest {
         // given
         Date beforeDate = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse("2019/11/11 12:00:00");
         Date afterDate = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse("2020/11/11 12:00:00");
-        setCsrMetaValuesAndDateValues(
-                rdns,
-                "CN=Common",
-                "CN=CommonCA",
-                "Common.com",
-                "Common@cn.com",
+        setCsrModelAndServerValues(
                 "myPassword",
-                "http://127.0.0.1/ejbca/publicweb/cmp/cmpTest",
                 "sender",
+                "http://127.0.0.1/ejbca/publicweb/cmp/cmpTest",
                 beforeDate,
                 afterDate);
         when(httpClient.execute(any())).thenThrow(IOException.class);
@@ -299,30 +268,19 @@ class Cmpv2ClientTest {
         // then
         Assertions.assertThrows(
                 CmpClientException.class,
-                () -> cmpClient.createCertificate("data", "RA", csrMeta, cert, notBefore, notAfter));
+                () -> cmpClient.createCertificate("data", "RA", csrModel, server, cert, notBefore, notAfter));
     }
 
-    private void setCsrMetaValuesAndDateValues(
-            List<Rdn> rdns,
-            String cn,
-            String issuerCn,
-            String san,
-            String email,
-            String password,
-            String externalCaUrl,
-            String senderKid,
-            Date notBefore,
-            Date notAfter) {
-        csrMeta = new CsrMeta(rdns);
-        csrMeta.setCn(cn);
-        csrMeta.addSan(san);
-        csrMeta.setPassword(password);
-        csrMeta.setEmail(email);
-        csrMeta.setIssuerCn(issuerCn);
-        when(kpg.generateKeyPair()).thenReturn(keyPair);
-        csrMeta.getKeyPairOrGenerateIfNull();
-        csrMeta.setCaUrl(externalCaUrl);
-        csrMeta.setSenderKid(senderKid);
+    private void setCsrModelAndServerValues(String iak, String rv, String externalCaUrl, Date notBefore, Date notAfter) {
+        csrModel = new CsrModel(null, dn, keyPair.getPrivate(), keyPair.getPublic(), Collections.emptyList());
+
+        Authentication authentication = new Authentication();
+        authentication.setIak(iak);
+        authentication.setRv(rv);
+        server = new Cmpv2Server();
+        server.setAuthentication(authentication);
+        server.setUrl(externalCaUrl);
+        server.setIssuerDN(dn);
         this.notBefore = notBefore;
         this.notAfter = notAfter;
     }