From 033f66b29c24b8819acefcdb38a9d9376bc0a2ba Mon Sep 17 00:00:00 2001 From: Adam Wudzinski Date: Thu, 24 Sep 2020 16:26:32 +0200 Subject: Fix VES problem with subsequent fetching from CBS Issue-ID: DCAEGEN2-2453 Signed-off-by: Adam Wudzinski Change-Id: If6aa6bc79b460d06908022fb4eb6cfbf096a8eb8 --- .../cbs/CbsClientConfigurationResolver.java | 1 - .../dcae/configuration/cbs/CbsConfigResolver.java | 8 +++--- .../cbs/CbsConfigResolverFactory.java | 5 +--- .../configuration/cbs/CbsConfigResolverTest.java | 32 ++++++++++++++++------ 4 files changed, 28 insertions(+), 18 deletions(-) diff --git a/src/main/java/org/onap/dcae/configuration/cbs/CbsClientConfigurationResolver.java b/src/main/java/org/onap/dcae/configuration/cbs/CbsClientConfigurationResolver.java index 360e0a8f..dc02131e 100644 --- a/src/main/java/org/onap/dcae/configuration/cbs/CbsClientConfigurationResolver.java +++ b/src/main/java/org/onap/dcae/configuration/cbs/CbsClientConfigurationResolver.java @@ -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; diff --git a/src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolver.java b/src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolver.java index 5a66c294..09a96985 100644 --- a/src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolver.java +++ b/src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolver.java @@ -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 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())) diff --git a/src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolverFactory.java b/src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolverFactory.java index aa3ee00f..5e42d9ec 100644 --- a/src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolverFactory.java +++ b/src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolverFactory.java @@ -19,13 +19,10 @@ */ 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 diff --git a/src/test/java/org/onap/dcae/configuration/cbs/CbsConfigResolverTest.java b/src/test/java/org/onap/dcae/configuration/cbs/CbsConfigResolverTest.java index b413a64d..6f729997 100644 --- a/src/test/java/org/onap/dcae/configuration/cbs/CbsConfigResolverTest.java +++ b/src/test/java/org/onap/dcae/configuration/cbs/CbsConfigResolverTest.java @@ -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 -- cgit 1.2.3-korg