Clean up AaaCertRpcServiceImplTest 60/104260/7
authorRobert Varga <robert.varga@pantheon.tech>
Sun, 5 Feb 2023 17:57:30 +0000 (18:57 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 6 Feb 2023 11:46:22 +0000 (12:46 +0100)
We have a ton of superfluous mocking (instead of builder use). Also
improve assertions by using Futures.getDone().

Change-Id: I5067792d2582db58467d21076c4316c4df2bb5e1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
aaa-cert/src/test/java/org/opendaylight/aaa/cert/impl/AaaCertRpcServiceImplTest.java

index 43414b622377707235cc84aec271aac74e3b6e23..d27d2723f86481f3d620d1c290d332cace6a3048 100644 (file)
@@ -7,25 +7,23 @@
  */
 package org.opendaylight.aaa.cert.impl;
 
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.isA;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 import static org.opendaylight.aaa.cert.impl.TestUtils.mockDataBroker;
 
+import com.google.common.util.concurrent.Futures;
 import java.io.File;
 import java.security.Security;
-import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
-import java.util.concurrent.Future;
 import org.bouncycastle.jce.provider.BouncyCastleProvider;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.opendaylight.aaa.cert.utils.KeyStoresDataUtils;
 import org.opendaylight.aaa.encrypt.AAAEncryptionService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.mdsal.rev160321.cipher.suite.CipherSuites;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.mdsal.rev160321.cipher.suite.CipherSuitesBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.mdsal.rev160321.key.stores.SslData;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.mdsal.rev160321.key.stores.SslDataBuilder;
@@ -33,35 +31,34 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.mdsal.rev1603
 import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.mdsal.rev160321.ssl.data.OdlKeystoreBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.mdsal.rev160321.ssl.data.TrustKeystore;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.rev151126.AaaCertServiceConfig;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.rpc.rev151215.GetNodeCertificateInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.rpc.rev151215.GetNodeCertificateOutput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.rev151126.AaaCertServiceConfigBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.rpc.rev151215.GetNodeCertificateInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.rpc.rev151215.GetODLCertificateInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.rpc.rev151215.GetODLCertificateOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.rpc.rev151215.GetODLCertificateReqInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.rpc.rev151215.GetODLCertificateReqOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.rpc.rev151215.SetNodeCertificateInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.rpc.rev151215.SetNodeCertificateOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.rpc.rev151215.SetODLCertificateInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.rpc.rev151215.SetODLCertificateOutput;
-import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.rpc.rev151215.SetNodeCertificateInputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.yang.aaa.cert.rpc.rev151215.SetODLCertificateInputBuilder;
 
 public class AaaCertRpcServiceImplTest {
     private static final String ALIAS = TestUtils.DUMMY_ALIAS;
     private static final String BUNDLE_NAME = "opendaylight";
     private static final String CERTIFICATE = TestUtils.DUMMY_CERT;
     private static final String CIPHER_SUITE_NAME = "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256";
-    private static final String[] CIPHER_SUITES_ARRAY = { CIPHER_SUITE_NAME };
     private static final String D_NAME = "CN=ODL, OU=Dev, O=LinuxFoundation, L=QC Montreal, C=CA";
     private static final String ODL_NAME = "odlTest.jks";
     private static final String PASSWORD = "passWord";
     private static final String PROTOCOL = "SSLv2Hello";
     private static final String TEST_PATH = "target" + File.separator + "test" + File.separator;
     private static final String TRUST_NAME = "trustTest.jks";
+    private static final AaaCertServiceConfig CONFIG = new AaaCertServiceConfigBuilder()
+        .setUseConfig(true)
+        .setUseMdsal(true)
+        .setBundleName(BUNDLE_NAME)
+        .build();
+
     private static AAAEncryptionService aaaEncryptionService;
     private static SslData signedSslData;
     private static SslData unsignedSslData;
     private static AaaCertRpcServiceImpl aaaCertRpcService;
-    private static AaaCertServiceConfig aaaCertServiceConfig;
 
     static {
         Security.addProvider(new BouncyCastleProvider());
@@ -82,89 +79,88 @@ public class AaaCertRpcServiceImplTest {
         final TrustKeystore unsignedTrustKeyStore = keyStoresDataUtils.createTrustKeystore(TRUST_NAME, PASSWORD,
                 odlKeyTool);
 
-        final CipherSuites cipherSuite = new CipherSuitesBuilder().setSuiteName(CIPHER_SUITE_NAME).build();
-
-        final List<CipherSuites> cipherSuites = new ArrayList<>(Arrays.asList(cipherSuite));
-
-        signedSslData = new SslDataBuilder().setCipherSuites(cipherSuites).setOdlKeystore(signedOdlKeystore)
-                .setTrustKeystore(signedTrustKeyStore).setTlsProtocols(PROTOCOL).setBundleName(BUNDLE_NAME).build();
-
-        final OdlKeystore unsignedOdlKeystore = new OdlKeystoreBuilder().setAlias(ALIAS).setDname(D_NAME)
-                .setName(ODL_NAME).setStorePassword(PASSWORD).setValidity(KeyStoreConstant.DEFAULT_VALIDITY)
-                .setKeyAlg(KeyStoreConstant.DEFAULT_KEY_ALG).setKeysize(KeyStoreConstant.DEFAULT_KEY_SIZE)
-                .setSignAlg(KeyStoreConstant.DEFAULT_SIGN_ALG).setKeystoreFile(unsignedTrustKeyStore.getKeystoreFile())
-                .build();
-
-        unsignedSslData = new SslDataBuilder().setOdlKeystore(unsignedOdlKeystore)
-                .setTrustKeystore(unsignedTrustKeyStore).setBundleName(BUNDLE_NAME).build();
+        signedSslData = new SslDataBuilder()
+            .setCipherSuites(List.of(new CipherSuitesBuilder().setSuiteName(CIPHER_SUITE_NAME).build()))
+            .setOdlKeystore(signedOdlKeystore)
+            .setTrustKeystore(signedTrustKeyStore)
+            .setTlsProtocols(PROTOCOL)
+            .setBundleName(BUNDLE_NAME)
+            .build();
+
+        unsignedSslData = new SslDataBuilder()
+            .setOdlKeystore(new OdlKeystoreBuilder()
+                .setAlias(ALIAS)
+                .setDname(D_NAME)
+                .setName(ODL_NAME)
+                .setStorePassword(PASSWORD)
+                .setValidity(KeyStoreConstant.DEFAULT_VALIDITY)
+                .setKeyAlg(KeyStoreConstant.DEFAULT_KEY_ALG)
+                .setKeysize(KeyStoreConstant.DEFAULT_KEY_SIZE)
+                .setSignAlg(KeyStoreConstant.DEFAULT_SIGN_ALG)
+                .setKeystoreFile(unsignedTrustKeyStore.getKeystoreFile())
+                .build())
+            .setTrustKeystore(unsignedTrustKeyStore)
+            .setBundleName(BUNDLE_NAME)
+            .build();
 
         when(aaaEncryptionServiceInit.decrypt(unsignedTrustKeyStore.getKeystoreFile()))
                 .thenReturn(unsignedTrustKeyStore.getKeystoreFile());
         when(aaaEncryptionServiceInit.decrypt(signedOdlKeystore.getKeystoreFile()))
                 .thenReturn(signedOdlKeystore.getKeystoreFile());
-        when(aaaEncryptionServiceInit.decrypt(isA(String.class))).thenReturn(PASSWORD);
+        when(aaaEncryptionServiceInit.decrypt(any(String.class))).thenReturn(PASSWORD);
         aaaEncryptionService = aaaEncryptionServiceInit;
 
-        final AaaCertServiceConfig aaaCertServiceConfigInit = mock(AaaCertServiceConfig.class);
-        when(aaaCertServiceConfigInit.getUseConfig()).thenReturn(true);
-        when(aaaCertServiceConfigInit.getUseMdsal()).thenReturn(true);
-        when(aaaCertServiceConfigInit.getBundleName()).thenReturn(BUNDLE_NAME);
-        aaaCertServiceConfig = aaaCertServiceConfigInit;
-
         // Create class
-        aaaCertRpcService = new AaaCertRpcServiceImpl(aaaCertServiceConfig, mockDataBroker(signedSslData),
+        aaaCertRpcService = new AaaCertRpcServiceImpl(CONFIG, mockDataBroker(signedSslData),
                 aaaEncryptionService);
         assertNotNull(aaaCertRpcService);
     }
 
     @Test
     public void getNodeCertificateTest() throws Exception {
-        final GetNodeCertificateInput nodeCertificateInput = mock(GetNodeCertificateInput.class);
-        when(nodeCertificateInput.getNodeAlias()).thenReturn(ALIAS);
-        Future<RpcResult<GetNodeCertificateOutput>> result = aaaCertRpcService.getNodeCertificate(nodeCertificateInput);
-        assertTrue(result.get().isSuccessful());
-        final String cert = result.get().getResult().getNodeCert();
+        final var result = Futures.getDone(aaaCertRpcService.getNodeCertificate(
+            new GetNodeCertificateInputBuilder().setNodeAlias(ALIAS).build()));
+        assertTrue(result.isSuccessful());
+        final String cert = result.getResult().getNodeCert();
         assertTrue(cert != null && !cert.isEmpty());
-        assertTrue(!cert.contains(KeyStoreConstant.END_CERTIFICATE));
+        assertFalse(cert.contains(KeyStoreConstant.END_CERTIFICATE));
     }
 
     @Test
     public void setODLCertificateTest() throws Exception {
-        final SetODLCertificateInput input = mock(SetODLCertificateInput.class);
-        when(input.getOdlCertAlias()).thenReturn(ALIAS);
-        when(input.getOdlCert()).thenReturn(CERTIFICATE);
-        Future<RpcResult<SetODLCertificateOutput>> result = new AaaCertRpcServiceImpl(aaaCertServiceConfig,
-                mockDataBroker(unsignedSslData), aaaEncryptionService).setODLCertificate(input);
-        assertTrue(result.get().isSuccessful());
+        final var result = Futures.getDone(
+            new AaaCertRpcServiceImpl(CONFIG, mockDataBroker(unsignedSslData), aaaEncryptionService)
+                .setODLCertificate(
+                    new SetODLCertificateInputBuilder().setOdlCertAlias(ALIAS).setOdlCert(CERTIFICATE).build()));
+        assertTrue(result.isSuccessful());
     }
 
     @Test
     public void getODLCertificateTest() throws Exception {
-        Future<RpcResult<GetODLCertificateOutput>> result = aaaCertRpcService.getODLCertificate(
-            new GetODLCertificateInputBuilder().build());
-        assertTrue(result.get().isSuccessful());
-        final String cert = result.get().getResult().getOdlCert();
+        final var result = Futures.getDone(aaaCertRpcService.getODLCertificate(
+            new GetODLCertificateInputBuilder().build()));
+        assertTrue(result.isSuccessful());
+        final String cert = result.getResult().getOdlCert();
         assertTrue(cert != null && !cert.isEmpty());
-        assertTrue(!cert.contains(KeyStoreConstant.END_CERTIFICATE));
+        assertFalse(cert.contains(KeyStoreConstant.END_CERTIFICATE));
     }
 
     @Test
     public void getODLCertificateReq() throws Exception {
-        Future<RpcResult<GetODLCertificateReqOutput>> result = aaaCertRpcService.getODLCertificateReq(
-            new GetODLCertificateReqInputBuilder().build());
-        assertTrue(result.get().isSuccessful());
-        final String cert = result.get().getResult().getOdlCertReq();
+        final var result = Futures.getDone(aaaCertRpcService.getODLCertificateReq(
+            new GetODLCertificateReqInputBuilder().build()));
+        assertTrue(result.isSuccessful());
+        final String cert = result.getResult().getOdlCertReq();
         assertTrue(cert != null && !cert.isEmpty());
-        assertTrue(!cert.contains(KeyStoreConstant.END_CERTIFICATE_REQUEST));
+        assertFalse(cert.contains(KeyStoreConstant.END_CERTIFICATE_REQUEST));
     }
 
     @Test
     public void setNodeCertificate() throws Exception {
-        final SetNodeCertificateInput input = mock(SetNodeCertificateInput.class);
-        when(input.getNodeAlias()).thenReturn(ALIAS);
-        when(input.getNodeCert()).thenReturn(CERTIFICATE);
-        Future<RpcResult<SetNodeCertificateOutput>> result = new AaaCertRpcServiceImpl(aaaCertServiceConfig,
-                mockDataBroker(unsignedSslData), aaaEncryptionService).setNodeCertificate(input);
-        assertTrue(result.get().isSuccessful());
+        final var result = Futures.getDone(
+            new AaaCertRpcServiceImpl(CONFIG, mockDataBroker(unsignedSslData), aaaEncryptionService)
+                .setNodeCertificate(
+                    new SetNodeCertificateInputBuilder().setNodeAlias(ALIAS).setNodeCert(CERTIFICATE).build()));
+        assertTrue(result.isSuccessful());
     }
 }