diff options
Diffstat (limited to 'rest-services/dmaap-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/service/consumer/DMaaPReactiveWebClientFactoryTest.java')
-rw-r--r-- | rest-services/dmaap-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/service/consumer/DMaaPReactiveWebClientFactoryTest.java | 61 |
1 files changed, 39 insertions, 22 deletions
diff --git a/rest-services/dmaap-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/service/consumer/DMaaPReactiveWebClientFactoryTest.java b/rest-services/dmaap-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/service/consumer/DMaaPReactiveWebClientFactoryTest.java index 6fd22007..9d670c65 100644 --- a/rest-services/dmaap-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/service/consumer/DMaaPReactiveWebClientFactoryTest.java +++ b/rest-services/dmaap-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/service/consumer/DMaaPReactiveWebClientFactoryTest.java @@ -20,17 +20,21 @@ package org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.service.consumer; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import io.netty.handler.ssl.SslContext; -import javax.net.ssl.SSLException; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.mockito.ArgumentCaptor; import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.DmaapConsumerConfiguration; -import org.onap.dcaegen2.services.sdk.rest.services.ssl.SslFactory; import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.CloudHttpClient; +import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.utlis.SecurityKeysUtil; +import org.onap.dcaegen2.services.sdk.security.ssl.SecurityKeys; +import org.onap.dcaegen2.services.sdk.security.ssl.SslFactory; /** @@ -38,16 +42,18 @@ import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.CloudHttpClien */ class DMaaPReactiveWebClientFactoryTest { - private static final String KEY_STORE = "keyStore"; - private static final String KEY_STORE_PASS = "keyStorePass"; - private static final String TRUST_STORE = "trustStore"; - private static final String TRUST_STORE_PASS = "trustStorePass"; + private static final String KEY_STORE_RESOURCE_PATH = "/org.onap.dcae.jks"; + private static final String KEY_STORE_PASS_RESOURCE_PATH = "/keystore.password"; + private static final String TRUST_STORE_RESOURCE_PATH = "/org.onap.dcae.trust.jks"; + private static final String TRUST_STORE_PASS_RESOURCE_PATH = "/truststore.password"; private SslFactory sslFactory = mock(SslFactory.class); private SslContext dummySslContext = mock(SslContext.class); private DMaaPReactiveWebClientFactory webClientFactory = new DMaaPReactiveWebClientFactory(sslFactory); + private ArgumentCaptor<SecurityKeys> securityKeysArgumentCaptor = ArgumentCaptor + .forClass(SecurityKeys.class); @Test - void builder_shouldBuildDMaaPReactiveWebClientwithInsecureSslContext() throws Exception { + void builder_shouldBuildDMaaPReactiveWebClientwithInsecureSslContext(){ //given DmaapConsumerConfiguration dmaapConsumerConfiguration = givenDmaapConfigurationWithSslDisabled(); @@ -55,39 +61,50 @@ class DMaaPReactiveWebClientFactoryTest { CloudHttpClient dmaapReactiveWebClient = webClientFactory.build(dmaapConsumerConfiguration); //then - Assertions.assertNotNull(dmaapReactiveWebClient); - verify(sslFactory).createInsecureContext(); + assertNotNull(dmaapReactiveWebClient); + verify(sslFactory).createInsecureClientContext(); } @Test - void builder_shouldBuildDMaaPReactiveWebClientwithSecureSslContext() throws Exception { + void builder_shouldBuildDMaaPReactiveWebClientwithSecureSslContext(){ //given DmaapConsumerConfiguration dmaapConsumerConfiguration = givenDmaapConfigurationWithSslEnabled(); + SecurityKeys givenKeys = SecurityKeysUtil.fromDmappCustomConfig(dmaapConsumerConfiguration); //when CloudHttpClient dmaapReactiveWebClient = webClientFactory.build(dmaapConsumerConfiguration); //then - Assertions.assertNotNull(dmaapReactiveWebClient); - verify(sslFactory).createSecureContext(KEY_STORE, KEY_STORE_PASS, TRUST_STORE, TRUST_STORE_PASS); + assertNotNull(dmaapReactiveWebClient); + + verify(sslFactory).createSecureClientContext(securityKeysArgumentCaptor.capture()); + + SecurityKeys capturedKeys = securityKeysArgumentCaptor.getValue(); + + assertEquals(capturedKeys.keyStore().path(), givenKeys.keyStore().path()); + assertEquals(capturedKeys.keyStorePassword().toString(), givenKeys.keyStorePassword().toString()); + assertEquals(capturedKeys.trustStore().path(), givenKeys.trustStore().path()); + assertEquals(capturedKeys.trustStorePassword().toString(), givenKeys.trustStorePassword().toString()); } - private DmaapConsumerConfiguration givenDmaapConfigurationWithSslDisabled() throws SSLException { + private DmaapConsumerConfiguration givenDmaapConfigurationWithSslDisabled(){ DmaapConsumerConfiguration dmaapConsumerConfiguration = mock(DmaapConsumerConfiguration.class); when(dmaapConsumerConfiguration.enableDmaapCertAuth()).thenReturn(false); - when(sslFactory.createInsecureContext()).thenReturn(dummySslContext); + when(sslFactory.createInsecureClientContext()).thenReturn(dummySslContext); return dmaapConsumerConfiguration; } - private DmaapConsumerConfiguration givenDmaapConfigurationWithSslEnabled() throws SSLException { + private DmaapConsumerConfiguration givenDmaapConfigurationWithSslEnabled(){ DmaapConsumerConfiguration dmaapConsumerConfiguration = mock(DmaapConsumerConfiguration.class); + when(dmaapConsumerConfiguration.enableDmaapCertAuth()).thenReturn(true); - when(dmaapConsumerConfiguration.keyStorePath()).thenReturn(KEY_STORE); - when(dmaapConsumerConfiguration.keyStorePasswordPath()).thenReturn(KEY_STORE_PASS); - when(dmaapConsumerConfiguration.trustStorePath()).thenReturn(TRUST_STORE); - when(dmaapConsumerConfiguration.trustStorePasswordPath()).thenReturn(TRUST_STORE_PASS); - when(sslFactory.createSecureContext(KEY_STORE, KEY_STORE_PASS, TRUST_STORE, TRUST_STORE_PASS)) - .thenReturn(dummySslContext); + when(dmaapConsumerConfiguration.keyStorePath()).thenReturn(KEY_STORE_RESOURCE_PATH); + when(dmaapConsumerConfiguration.keyStorePasswordPath()).thenReturn(KEY_STORE_PASS_RESOURCE_PATH); + when(dmaapConsumerConfiguration.trustStorePath()).thenReturn(TRUST_STORE_RESOURCE_PATH); + when(dmaapConsumerConfiguration.trustStorePasswordPath()).thenReturn(TRUST_STORE_PASS_RESOURCE_PATH); + + when(sslFactory.createSecureClientContext(any(SecurityKeys.class))).thenReturn(dummySslContext); + return dmaapConsumerConfiguration; } }
\ No newline at end of file |