diff options
author | Tomasz Pietruszkiewicz <tomasz.pietruszkiewicz@nokia.com> | 2021-04-26 10:02:00 +0200 |
---|---|---|
committer | Tomasz Pietruszkiewicz <tomasz.pietruszkiewicz@nokia.com> | 2021-04-29 10:38:11 +0200 |
commit | a424173f03b236958d4a454c95a1a7597073cea6 (patch) | |
tree | 231e4a757f8ae1315c73d99de00ec1adb67810f0 /rest-services/cbs-client/src/test | |
parent | 6ff688ba54d1ec40e6f6a6e5dd02ef6b6e29dd54 (diff) |
CBS-Client to support config fetch from a configMap
Change-Id: I2ad57844d142ece3275ed6d8586d8689b296bbbe
Issue-ID: DCAEGEN2-2716
Signed-off-by: Tomasz Pietruszkiewicz <tomasz.pietruszkiewicz@nokia.com>
Signed-off-by: Michal Banka <michal.banka@nokia.com>
Diffstat (limited to 'rest-services/cbs-client/src/test')
-rw-r--r-- | rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientConfigMapTest.java | 57 | ||||
-rw-r--r-- | rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientImplIT.java | 68 | ||||
-rw-r--r-- | rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientRestTest.java (renamed from rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientImplTest.java) | 6 | ||||
-rw-r--r-- | rest-services/cbs-client/src/test/resources/application_config.yaml | 10 | ||||
-rw-r--r-- | rest-services/cbs-client/src/test/resources/sample_local_service_config.json | 33 |
5 files changed, 149 insertions, 25 deletions
diff --git a/rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientConfigMapTest.java b/rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientConfigMapTest.java new file mode 100644 index 00000000..07b44e9e --- /dev/null +++ b/rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientConfigMapTest.java @@ -0,0 +1,57 @@ +/* + * ============LICENSE_START==================================== + * DCAEGEN2-SERVICES-SDK + * ========================================================= + * Copyright (C) 2021 Nokia. All rights reserved. + * ========================================================= + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END===================================== + */ +package org.onap.dcaegen2.services.sdk.rest.services.cbs.client.impl; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonObject; +import org.junit.jupiter.api.Test; +import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.CbsClient; +import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.CbsRequests; +import org.onap.dcaegen2.services.sdk.rest.services.model.logging.RequestDiagnosticContext; +import org.onap.dcaegen2.services.sdk.services.common.FileReader; +import org.yaml.snakeyaml.Yaml; +import java.util.LinkedHashMap; +import static org.assertj.core.api.Assertions.assertThat; + +public class CbsClientConfigMapTest { + + @Test + void shouldFetchUsingProperConfigMapFile() { + // given + String configMapFilePath = "src/test/resources/application_config.yaml"; + final CbsClient cut = new CbsClientConfigMap(configMapFilePath); + + RequestDiagnosticContext diagnosticContext = RequestDiagnosticContext.create(); + + // when + final JsonObject result = cut.get(CbsRequests.getConfiguration(diagnosticContext)).block(); + + // then + assertThat(result).isNotNull(); + assertThat(result).isEqualTo(covertYamlToJson(configMapFilePath)); + } + + private JsonObject covertYamlToJson(String configMapFilePath) { + Gson gson = new GsonBuilder().create(); + return gson.fromJson(gson.toJson(new Yaml().load(new FileReader(configMapFilePath).getContent()), + LinkedHashMap.class), JsonObject.class); + } +} diff --git a/rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientImplIT.java b/rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientImplIT.java index 5804c165..83743a6c 100644 --- a/rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientImplIT.java +++ b/rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientImplIT.java @@ -2,7 +2,7 @@ * ============LICENSE_START==================================== * DCAEGEN2-SERVICES-SDK * ========================================================= - * Copyright (C) 2019 Nokia. All rights reserved. + * Copyright (C) 2019-2021 Nokia. All rights reserved. * ========================================================= * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,6 +22,7 @@ package org.onap.dcaegen2.services.sdk.rest.services.cbs.client.impl; import com.google.gson.JsonObject; import io.vavr.collection.Stream; +import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -64,8 +65,11 @@ class CbsClientImplIT { private static final String SAMPLE_ALL = "/sample_all.json"; private static final String SAMPLE_KEY = "/sample_key.json"; private static final String SAMPLE_CONFIG_KEY = "keystore.path"; - private static final String EXPECTED_CONFIG_VALUE = "/var/run/security/keystore.p12"; - private static CbsClientConfiguration sampleConfiguration; + private static final String EXPECTED_CONFIG_VALUE_FROM_CBS = "/var/run/security/keystore.p12"; + private static final String EXPECTED_CONFIG_VALUE_FROM_FILE = "/var/run/security/keystore_file.p12"; + private static final String CONFIG_MAP_FILE_PATH = "src/test/resources/sample_local_service_config.json"; + private static CbsClientConfiguration sampleConfigurationCbsSource; + private static CbsClientConfiguration sampleConfigurationFileSource; private static DummyHttpServer server; @BeforeAll @@ -75,12 +79,9 @@ class CbsClientImplIT { .get("/service_component_all/dcae-component", (req, resp) -> sendResource(resp, SAMPLE_ALL)) .get("/sampleKey/dcae-component", (req, resp) -> sendResource(resp, SAMPLE_KEY)) ); - sampleConfiguration = ImmutableCbsClientConfiguration.builder() - .protocol("http") - .appName("dcae-component") - .hostname(server.host()) - .port(server.port()) - .build(); + ImmutableCbsClientConfiguration.Builder configBuilder = getConfigBuilder(); + sampleConfigurationCbsSource = configBuilder.build(); + sampleConfigurationFileSource = configBuilder.configMapFilePath(CONFIG_MAP_FILE_PATH).build(); } @AfterAll @@ -91,7 +92,7 @@ class CbsClientImplIT { @Test void testCbsClientWithSingleCall() { // given - final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(sampleConfiguration); + final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(sampleConfigurationCbsSource); final CbsRequest request = CbsRequests.getConfiguration(RequestDiagnosticContext.create()); // when @@ -99,7 +100,7 @@ class CbsClientImplIT { // then StepVerifier.create(result.map(this::sampleConfigValue)) - .expectNext(EXPECTED_CONFIG_VALUE) + .expectNext(EXPECTED_CONFIG_VALUE_FROM_CBS) .expectComplete() .verify(Duration.ofSeconds(5)); } @@ -107,7 +108,7 @@ class CbsClientImplIT { @Test void testCbsClientWithPeriodicCall() { // given - final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(sampleConfiguration); + final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(sampleConfigurationCbsSource); final CbsRequest request = CbsRequests.getConfiguration(RequestDiagnosticContext.create()); // when @@ -117,7 +118,7 @@ class CbsClientImplIT { // then final int itemsToTake = 5; StepVerifier.create(result.take(itemsToTake).map(this::sampleConfigValue)) - .expectNextSequence(Stream.of(EXPECTED_CONFIG_VALUE).cycle(itemsToTake)) + .expectNextSequence(Stream.of(EXPECTED_CONFIG_VALUE_FROM_CBS).cycle(itemsToTake)) .expectComplete() .verify(Duration.ofSeconds(5)); } @@ -125,7 +126,7 @@ class CbsClientImplIT { @Test void testCbsClientWithUpdatesCall() { // given - final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(sampleConfiguration); + final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(sampleConfigurationCbsSource); final CbsRequest request = CbsRequests.getConfiguration(RequestDiagnosticContext.create()); final Duration period = Duration.ofMillis(10); @@ -136,7 +137,23 @@ class CbsClientImplIT { // then final Duration timeToCollectItemsFor = period.multipliedBy(50); StepVerifier.create(result.take(timeToCollectItemsFor).map(this::sampleConfigValue)) - .expectNext(EXPECTED_CONFIG_VALUE) + .expectNext(EXPECTED_CONFIG_VALUE_FROM_CBS) + .expectComplete() + .verify(Duration.ofSeconds(5)); + } + + @Test + void testCbsClientWithConfigRetrievedFromFile() { + // given + final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(sampleConfigurationFileSource); + final CbsRequest request = CbsRequests.getConfiguration(RequestDiagnosticContext.create()); + + // when + final Mono<JsonObject> result = sut.flatMap(cbsClient -> cbsClient.get(request)); + + // then + StepVerifier.create(result.map(this::sampleConfigValue)) + .expectNext(EXPECTED_CONFIG_VALUE_FROM_FILE) .expectComplete() .verify(Duration.ofSeconds(5)); } @@ -144,7 +161,7 @@ class CbsClientImplIT { @Test void testCbsClientWithStreamsParsing() { // given - final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(sampleConfiguration); + final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(sampleConfigurationCbsSource); final StreamFromGsonParser<KafkaSink> kafkaSinkParser = StreamFromGsonParsers.kafkaSinkParser(); final CbsRequest request = CbsRequests.getConfiguration(RequestDiagnosticContext.create()); @@ -168,7 +185,7 @@ class CbsClientImplIT { @Test void testCbsClientWithStreamsParsingUsingSwitch() { // given - final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(sampleConfiguration); + final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(sampleConfigurationCbsSource); final CbsRequest request = CbsRequests.getConfiguration(RequestDiagnosticContext.create()); // TODO: Use these parsers below final StreamFromGsonParser<KafkaSink> kafkaSinkParser = StreamFromGsonParsers.kafkaSinkParser(); @@ -204,7 +221,7 @@ class CbsClientImplIT { @Test void testCbsClientWithStreamsParsingWhenUsingInvalidParser() { // given - final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(sampleConfiguration); + final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(sampleConfigurationCbsSource); final StreamFromGsonParser<KafkaSource> kafkaSourceParser = StreamFromGsonParsers.kafkaSourceParser(); final CbsRequest request = CbsRequests.getConfiguration(RequestDiagnosticContext.create()); @@ -228,7 +245,7 @@ class CbsClientImplIT { @Test void testCbsClientWithSingleAllRequest() { // given - final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(sampleConfiguration); + final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(sampleConfigurationCbsSource); final CbsRequest request = CbsRequests.getAll(RequestDiagnosticContext.create()); // when @@ -249,7 +266,7 @@ class CbsClientImplIT { @Test void testCbsClientWithSingleKeyRequest() { // given - final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(sampleConfiguration); + final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(sampleConfigurationCbsSource); final CbsRequest request = CbsRequests.getByKey(RequestDiagnosticContext.create(), "sampleKey"); // when @@ -268,7 +285,7 @@ class CbsClientImplIT { @Test void testCbsClientWhenTheConfigurationWasNotFound() { // given - final CbsClientConfiguration unknownAppEnv = ImmutableCbsClientConfiguration.copyOf(sampleConfiguration).withAppName("unknown_app"); + final CbsClientConfiguration unknownAppEnv = ImmutableCbsClientConfiguration.copyOf(sampleConfigurationCbsSource).withAppName("unknown_app"); final Mono<CbsClient> sut = CbsClientFactory.createCbsClient(unknownAppEnv); final CbsRequest request = CbsRequests.getConfiguration(RequestDiagnosticContext.create()); @@ -281,6 +298,15 @@ class CbsClientImplIT { .verify(Duration.ofSeconds(5)); } + @NotNull + private static ImmutableCbsClientConfiguration.Builder getConfigBuilder() { + return ImmutableCbsClientConfiguration.builder() + .protocol("http") + .appName("dcae-component") + .hostname(server.host()) + .port(server.port()); + } + private String sampleConfigValue(JsonObject obj) { return obj.get(SAMPLE_CONFIG_KEY).getAsString(); } diff --git a/rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientImplTest.java b/rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientRestTest.java index c9f92717..6368fbac 100644 --- a/rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientImplTest.java +++ b/rest-services/cbs-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/cbs/client/impl/CbsClientRestTest.java @@ -33,9 +33,7 @@ import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.CbsClient; import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.CbsRequests; import org.onap.dcaegen2.services.sdk.rest.services.model.logging.RequestDiagnosticContext; import reactor.core.publisher.Mono; - import java.net.InetSocketAddress; - import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.given; @@ -46,7 +44,7 @@ import static org.mockito.Mockito.verify; * @author <a href="mailto:piotr.jaszczyk@nokia.com">Piotr Jaszczyk</a> * @since February 2019 */ -class CbsClientImplTest { +class CbsClientRestTest { private final RxHttpClient httpClient = mock(RxHttpClient.class); @Test @@ -54,7 +52,7 @@ class CbsClientImplTest { // given InetSocketAddress cbsAddress = InetSocketAddress.createUnresolved("cbshost", 6969); String serviceName = "dcaegen2-ves-collector"; - final CbsClient cut = new CbsClientImpl(httpClient, serviceName, cbsAddress, "http"); + final CbsClient cut = new CbsClientRest(httpClient, serviceName, cbsAddress, "http"); final HttpResponse httpResponse = ImmutableHttpResponse.builder() .url("http://xxx") .statusCode(200) diff --git a/rest-services/cbs-client/src/test/resources/application_config.yaml b/rest-services/cbs-client/src/test/resources/application_config.yaml new file mode 100644 index 00000000..c43b9733 --- /dev/null +++ b/rest-services/cbs-client/src/test/resources/application_config.yaml @@ -0,0 +1,10 @@ +--- +streams_publishes: + perf3gpp: + type: kafka + aaf_credentials: + username: admin + password: admin_secret + kafka_info: + bootstrap_servers: message-router-kafka-0:9093 + topic_name: HV_VES_PERF3GPP diff --git a/rest-services/cbs-client/src/test/resources/sample_local_service_config.json b/rest-services/cbs-client/src/test/resources/sample_local_service_config.json new file mode 100644 index 00000000..af0ce6d5 --- /dev/null +++ b/rest-services/cbs-client/src/test/resources/sample_local_service_config.json @@ -0,0 +1,33 @@ +{ + "keystore.path": "/var/run/security/keystore_file.p12", + "streams_publishes": { + "perf3gpp": { + "type": "kafka", + "kafka_info": { + "bootstrap_servers": "dmaap-mr-kafka:6060", + "topic_name": "HVVES_PERF3GPP" + } + }, + "pnf_ready": { + "type": "message_router", + "dmaap_info": { + "topic_url": "http://message-router:3904/events/VES_PNF_READY" + } + }, + "call_trace": { + "type": "kafka", + "kafka_info": { + "bootstrap_servers": "dmaap-mr-kafka:6060", + "topic_name": "HVVES_TRACE" + } + } + }, + "streams_subscribes": { + "measurements": { + "type": "message_router", + "dmaap_info": { + "topic_url": "http://message-router:3904/events/VES_MEASUREMENT" + } + } + } +} |