Fix VES problem with subsequent fetching from CBS 09/113109/2 1.7.6
authorAdam Wudzinski <adam.wudzinski@nokia.com>
Thu, 24 Sep 2020 14:26:32 +0000 (16:26 +0200)
committerAdam Wudzinski <adam.wudzinski@nokia.com>
Thu, 24 Sep 2020 14:40:38 +0000 (16:40 +0200)
Issue-ID: DCAEGEN2-2453
Signed-off-by: Adam Wudzinski <adam.wudzinski@nokia.com>
Change-Id: If6aa6bc79b460d06908022fb4eb6cfbf096a8eb8

src/main/java/org/onap/dcae/configuration/cbs/CbsClientConfigurationResolver.java
src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolver.java
src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolverFactory.java
src/test/java/org/onap/dcae/configuration/cbs/CbsConfigResolverTest.java

index 360e0a8..dc02131 100644 (file)
@@ -19,7 +19,6 @@
  */
 package org.onap.dcae.configuration.cbs;
 
-import io.vavr.control.Option;
 import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.CbsClientConfiguration;
 import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.ImmutableCbsClientConfiguration;
 import org.slf4j.Logger;
index 5a66c29..09a9698 100644 (file)
@@ -21,7 +21,6 @@ package org.onap.dcae.configuration.cbs;
 
 import com.google.gson.JsonObject;
 import io.vavr.control.Option;
-import java.util.function.Consumer;
 import org.json.JSONObject;
 import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.CbsClientFactory;
 import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.CbsRequests;
@@ -37,16 +36,17 @@ public class CbsConfigResolver {
 
     private static final Logger log = LoggerFactory.getLogger(CbsConfigResolver.class);
 
-    private final CbsClientConfiguration cbsClientConfiguration;
+    private final CbsClientConfigurationResolver cbsClientConfigurationResolver;
     private final RequestDiagnosticContext diagnosticContext = RequestDiagnosticContext.create();
     private final CbsRequest cbsConfigurationRequest = CbsRequests.getConfiguration(diagnosticContext);
 
-    CbsConfigResolver(CbsClientConfiguration cbsClientConfiguration) {
-        this.cbsClientConfiguration = cbsClientConfiguration;
+    CbsConfigResolver(CbsClientConfigurationResolver cbsClientConfigurationResolver) {
+        this.cbsClientConfigurationResolver = cbsClientConfigurationResolver;
     }
 
     public Option<JSONObject> getAppConfig() {
         JsonObject emptyJson = new JsonObject();
+        CbsClientConfiguration cbsClientConfiguration = cbsClientConfigurationResolver.resolveCbsClientConfiguration();
         JsonObject jsonObject = CbsClientFactory.createCbsClient(cbsClientConfiguration)
             .flatMap(cbsClient -> cbsClient.get(cbsConfigurationRequest))
             .doOnError(error -> log.warn("Failed to fetch configuration from CBS " + error.getMessage()))
index aa3ee00..5e42d9e 100644 (file)
  */
 package org.onap.dcae.configuration.cbs;
 
-import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.CbsClientConfiguration;
-
 public class CbsConfigResolverFactory {
 
     public CbsConfigResolver create() {
         CbsClientConfigurationResolver resolver = new CbsClientConfigurationResolver();
-        CbsClientConfiguration cbsClientConfiguration = resolver.resolveCbsClientConfiguration();
-        return new CbsConfigResolver(cbsClientConfiguration);
+        return new CbsConfigResolver(resolver);
     }
 }
\ No newline at end of file
index b413a64..6f72999 100644 (file)
@@ -24,6 +24,8 @@ import org.json.JSONObject;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.CbsClientConfiguration;
 import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.ImmutableCbsClientConfiguration;
@@ -34,6 +36,7 @@ import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
 import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
 import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.Silent.class)
 public class CbsConfigResolverTest {
@@ -47,20 +50,20 @@ public class CbsConfigResolverTest {
     public final WireMockRule wireMockRule = new WireMockRule(
             wireMockConfig().dynamicPort().dynamicPort());
 
+    @Mock
+    private CbsClientConfigurationResolver cbsClientConfigurationResolver;
+
+    @InjectMocks
+    private CbsConfigResolver cbsConfigResolver;
+
     @Test
     public void shouldFetchConfigurationFromCBS() {
         // given
-        final int PORT = wireMockRule.port();
         stubCBSToReturnAppConfig();
+        mockCbsClientConfiguration();
 
         // when
-        CbsClientConfiguration cbsClientConfiguration = ImmutableCbsClientConfiguration.builder()
-                .protocol(PROTOCOL)
-                .hostname(HOSTNAME)
-                .port(PORT)
-                .appName(APP_NAME)
-                .build();
-        JSONObject appConfig = new CbsConfigResolver(cbsClientConfiguration).getAppConfig().get();
+        JSONObject appConfig = cbsConfigResolver.getAppConfig().get();
 
         // then
         assertThat(appConfig).isNotNull();
@@ -69,6 +72,17 @@ public class CbsConfigResolverTest {
 
     private void stubCBSToReturnAppConfig() {
         stubFor(get(urlEqualTo("/service_component/VESCollector"))
-                .willReturn(aResponse().withBody(CbsConfigResolverTest.VES_CONFIG)));
+            .willReturn(aResponse().withBody(CbsConfigResolverTest.VES_CONFIG)));
+    }
+
+    private void mockCbsClientConfiguration() {
+        final int PORT = wireMockRule.port();
+        CbsClientConfiguration cbsClientConfiguration = ImmutableCbsClientConfiguration.builder()
+            .protocol(PROTOCOL)
+            .hostname(HOSTNAME)
+            .port(PORT)
+            .appName(APP_NAME)
+            .build();
+        when(cbsClientConfigurationResolver.resolveCbsClientConfiguration()).thenReturn(cbsClientConfiguration);
     }
 }
\ No newline at end of file