From 66af83f78633f6d3884a7a477ea69422aa41af2b Mon Sep 17 00:00:00 2001 From: Vijay Venkatesh Kumar Date: Tue, 14 Feb 2023 16:48:50 -0500 Subject: Test updates Test updates for ConfigProcessor, DMaaPConfigurationParser & DMaaPEventPublisher Change-Id: I340b3591ca47172dc90f8dafabdc1a0bf34ffb7c Signed-off-by: Vijay Venkatesh Kumar Issue-ID: DCAEGEN2-3345 Signed-off-by: Vijay Venkatesh Kumar --- Changelog.md | 4 ++ pom.xml | 2 +- .../org/onap/dcae/common/ConfigProcessors.java | 2 +- .../common/publishing/DMaaPEventPublisher.java | 28 +++++---- .../org/onap/dcae/common/ConfigProcessorTest.java | 16 +++++ .../publishing/DMaaPConfigurationParserTest.java | 14 ++++- .../common/publishing/DMaaPEventPublisherTest.java | 69 ++++++++++++++++++++++ version.properties | 2 +- 8 files changed, 122 insertions(+), 15 deletions(-) create mode 100644 src/test/java/org/onap/dcae/common/publishing/DMaaPEventPublisherTest.java diff --git a/Changelog.md b/Changelog.md index 3c7339f0..3b2a1e9c 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). + +## [1.12.3] - 2023/02/14 + - [DCAEGEN2-3345] - Test updates for ConfigProcessor, DMaaPConfigurationParser & DMaaPEventPublisher + ## [1.12.2] - 2023/01/20 - [DCAEGEN2-3334] - Update tests execution to be platform agnostic - [DCAEGEN2-3345] - Add additional tests for ConfigProcessor and ApiAuthInterceptor diff --git a/pom.xml b/pom.xml index 213f63e6..d84e7610 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ org.onap.dcaegen2.collectors.ves VESCollector - 1.12.2-SNAPSHOT + 1.12.3-SNAPSHOT dcaegen2-collectors-ves VESCollector diff --git a/src/main/java/org/onap/dcae/common/ConfigProcessors.java b/src/main/java/org/onap/dcae/common/ConfigProcessors.java index 040a3e6e..d53bf23b 100644 --- a/src/main/java/org/onap/dcae/common/ConfigProcessors.java +++ b/src/main/java/org/onap/dcae/common/ConfigProcessors.java @@ -202,7 +202,7 @@ public class ConfigProcessors { } } - private String performOperation(String operation, String value) { + String performOperation(String operation, String value) { log.info("performOperation"); if ("convertMBtoKB".equals(operation)) { float kbValue = Float.parseFloat(value) * 1024; diff --git a/src/main/java/org/onap/dcae/common/publishing/DMaaPEventPublisher.java b/src/main/java/org/onap/dcae/common/publishing/DMaaPEventPublisher.java index 08e16e0c..a7c0a0eb 100644 --- a/src/main/java/org/onap/dcae/common/publishing/DMaaPEventPublisher.java +++ b/src/main/java/org/onap/dcae/common/publishing/DMaaPEventPublisher.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.dcaegen2.collectors.ves * ================================================================================ - * Copyright (C) 2017,2020 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017,2020,2023 AT&T Intellectual Property. All rights reserved. * Copyright (C) 2018-2021 Nokia. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -33,6 +33,7 @@ import java.util.List; import java.util.Objects; import static org.onap.dcae.common.publishing.MessageRouterHttpStatusMapper.getHttpStatus; + /** * @author Pawel Szalapski (pawel.szalapski@nokia.com) */ @@ -48,9 +49,10 @@ public class DMaaPEventPublisher { /** * Reload Dmaap configuration + * * @param dmaapConfiguration Dmaap configuration */ - public void reload(Map dmaapConfiguration){ + public void reload(Map dmaapConfiguration) { dMaaPConfig = dmaapConfiguration; log.info("reload dmaap configuration"); } @@ -58,22 +60,26 @@ public class DMaaPEventPublisher { public HttpStatus sendEvent(List vesEvents, String dmaapId) { clearVesUniqueIdFromEvent(vesEvents); io.vavr.collection.List events = mapListOfEventsToVavrList(vesEvents); - Flux messageRouterPublishFlux = dmaapPublisher.publishEvents(events, dMaaPConfig.get(dmaapId)); + HttpStatus rc = messageRouterPublishResponse(events, dmaapId); + return rc; + } + + HttpStatus messageRouterPublishResponse(io.vavr.collection.List events, String dmaapId) { + Flux messageRouterPublishFlux = + dmaapPublisher.publishEvents(events, dMaaPConfig.get(dmaapId)); MessageRouterPublishResponse messageRouterPublishResponse = messageRouterPublishFlux.blockFirst(); return getHttpStatus(Objects.requireNonNull(messageRouterPublishResponse)); + } private io.vavr.collection.List mapListOfEventsToVavrList(List vesEvents) { - return io.vavr.collection.List.ofAll(vesEvents) - .map(event -> event.asJsonObject().toString()); + return io.vavr.collection.List.ofAll(vesEvents).map(event -> event.asJsonObject().toString()); } private void clearVesUniqueIdFromEvent(List events) { - events.stream() - .filter(event -> event.hasType(VesEvent.VES_UNIQUE_ID)) - .forEach(event -> { - log.debug("Removing VESuniqueid object from event"); - event.removeElement(VesEvent.VES_UNIQUE_ID); - }); + events.stream().filter(event -> event.hasType(VesEvent.VES_UNIQUE_ID)).forEach(event -> { + log.debug("Removing VESuniqueid object from event"); + event.removeElement(VesEvent.VES_UNIQUE_ID); + }); } } diff --git a/src/test/java/org/onap/dcae/common/ConfigProcessorTest.java b/src/test/java/org/onap/dcae/common/ConfigProcessorTest.java index 7fe80e03..a42ba5ae 100644 --- a/src/test/java/org/onap/dcae/common/ConfigProcessorTest.java +++ b/src/test/java/org/onap/dcae/common/ConfigProcessorTest.java @@ -29,6 +29,7 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import org.json.JSONArray; import org.json.JSONObject; import org.junit.Test; import org.junit.runner.RunWith; @@ -58,6 +59,14 @@ public class ConfigProcessorTest { + " }"); doReturn("ObjectNotFound").when(configProcessors).getEventObjectVal(Mockito.any()); configProcessors.renameArrayInArray(jsonObj); + JSONObject jsonObj1 = new JSONObject(" {\r\n" + + " \"field\": \"event[].measurementsForVfScalingFields[]\",\r\n" + + " \"oldField\": \"event[].measurementFields[]\",\r\n" + + " \"mapType\": \"renameObject\"\r\n" + + " }"); + String oldvalue = "[{\"cpuUsageNice\":0,\"percentUsage\":0.39,\"cpuIdentifier\":\"all\",\"cpuIdle\":99.61,\"cpuUsageSystem\":0,\"cpuUsageUser\":0.22},{\"cpuUsageNice\":0,\"percentUsage\":0.36,\"cpuIdentifier\":\"cpu0\",\"cpuIdle\":99.64,\"cpuUsageSystem\":0,\"cpuUsageUser\":0.21},{\"cpuUsageNice\":0,\"percentUsage\":0.33,\"cpuIdentifier\":\"cpu3\",\"cpuIdle\":99.67,\"cpuUsageSystem\":0,\"cpuUsageUser\":0.19}]"; + doReturn(oldvalue).when(configProcessors).getEventObjectVal(Mockito.any()); + configProcessors.renameArrayInArray(jsonObj1); } @@ -124,4 +133,11 @@ public class ConfigProcessorTest { doReturn(true).when(configProcessors).checkFilter(Mockito.any(),Mockito.any(),Mockito.any()); assertTrue((configProcessors.isFilterMet(jsonObj))); } + + @Test + public void verifyConvertMBtoKBOperation() { + String operation = "convertMBtoKB"; + String expval = "5120.0"; + assertEquals (expval, configProcessors.performOperation( operation, "5")); + } } diff --git a/src/test/java/org/onap/dcae/common/publishing/DMaaPConfigurationParserTest.java b/src/test/java/org/onap/dcae/common/publishing/DMaaPConfigurationParserTest.java index 9aaeb287..63c65050 100644 --- a/src/test/java/org/onap/dcae/common/publishing/DMaaPConfigurationParserTest.java +++ b/src/test/java/org/onap/dcae/common/publishing/DMaaPConfigurationParserTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.dcaegen2.collectors.ves * ================================================================================ - * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018,2023 AT&T Intellectual Property. All rights reserved. * Copyright (C) 2018,2021 Nokia. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -22,8 +22,11 @@ package org.onap.dcae.common.publishing; import static io.vavr.API.List; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import static org.onap.dcae.common.publishing.DMaaPConfigurationParser.parseToDomainMapping; +import io.vavr.collection.List; import io.vavr.collection.Map; import io.vavr.control.Try; import java.nio.file.Path; @@ -70,4 +73,13 @@ public class DMaaPConfigurationParserTest { assertThat(withOtherSegment.topic()).isEqualTo("DCAE-SE-COLLECTOR-EVENTS-DEV"); } + @Test + public void testPubConfigOverrideFunction() { + List dmaapHost = List.of("dmaapHost:3904"); + PublisherConfig pubConfig = new PublisherConfig(dmaapHost,"VES-OUTPUT", "TEST","TEST"); + assertTrue(pubConfig.equals(pubConfig)); + //negative tests + assertFalse(pubConfig.equals(null)); + assertFalse(pubConfig.equals(new PublisherConfig(dmaapHost,"VES-OUTPUT1", "TEST1","TEST1"))); + } } diff --git a/src/test/java/org/onap/dcae/common/publishing/DMaaPEventPublisherTest.java b/src/test/java/org/onap/dcae/common/publishing/DMaaPEventPublisherTest.java new file mode 100644 index 00000000..1fdd27a0 --- /dev/null +++ b/src/test/java/org/onap/dcae/common/publishing/DMaaPEventPublisherTest.java @@ -0,0 +1,69 @@ +/*- + * ============LICENSE_START======================================================= + * VES Collector + * ================================================================================ + * Copyright (C) 2023 AT&T Intellectual Property. 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.dcae.common.publishing; + +import io.vavr.collection.HashMap; +import io.vavr.collection.List; +import io.vavr.collection.Map; +import org.json.JSONObject; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; +import org.onap.dcae.common.JsonDataLoader; +import org.onap.dcae.common.model.VesEvent; +import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.ImmutableMessageRouterPublishResponse; +import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.MessageRouterPublishResponse; +import org.springframework.http.HttpStatus; + +import com.google.gson.JsonElement; + +import java.io.IOException; +import java.net.URISyntaxException; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.doReturn; + +public class DMaaPEventPublisherTest { + + @Test + public void sendEventtest() throws IOException, URISyntaxException { + + HttpStatus expectedrc = HttpStatus.ACCEPTED; + + Map dMaaPConfig = HashMap.of("key1", new PublisherConfig(null, null)); + DMaaPEventPublisher dmaapEventpub = Mockito.spy(new DMaaPEventPublisher(dMaaPConfig)); + java.util.List eventToSend = createEventToSend("/eventsAfterTransformation/ves7_valid_event.json"); + doReturn(expectedrc).when(dmaapEventpub).messageRouterPublishResponse(Mockito.any(), Mockito.any()); + HttpStatus rc = dmaapEventpub.sendEvent(eventToSend, "ves-fault"); + assertEquals(expectedrc.toString(), rc.toString()); + } + + private java.util.List createEventToSend(String path) throws IOException, URISyntaxException { + String event = JsonDataLoader.loadContent(path); + JSONObject jsonObject = new JSONObject(event); + java.util.List javaStringList = (List.of(new VesEvent(jsonObject))).toJavaList(); + return javaStringList; + } + + private MessageRouterPublishResponse successPublishResponse(List items) { + return ImmutableMessageRouterPublishResponse.builder().items(items).build(); + } + +} diff --git a/version.properties b/version.properties index d7c8cf39..7bf1a5cf 100644 --- a/version.properties +++ b/version.properties @@ -1,6 +1,6 @@ major=1 minor=12 -patch=2 +patch=3 base_version=${major}.${minor}.${patch} release_version=${base_version} snapshot_version=${base_version}-SNAPSHOT -- cgit 1.2.3-korg