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
</parent>
<groupId>org.onap.dcaegen2.collectors.ves</groupId>
<artifactId>VESCollector</artifactId>
- <version>1.12.2-SNAPSHOT</version>
+ <version>1.12.3-SNAPSHOT</version>
<name>dcaegen2-collectors-ves</name>
<description>VESCollector</description>
<properties>
}
}
- 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;
* ============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");
import java.util.Objects;
import static org.onap.dcae.common.publishing.MessageRouterHttpStatusMapper.getHttpStatus;
+
/**
* @author Pawel Szalapski (pawel.szalapski@nokia.com)
*/
/**
* Reload Dmaap configuration
+ *
* @param dmaapConfiguration Dmaap configuration
*/
- public void reload(Map<String, PublisherConfig> dmaapConfiguration){
+ public void reload(Map<String, PublisherConfig> dmaapConfiguration) {
dMaaPConfig = dmaapConfiguration;
log.info("reload dmaap configuration");
}
public HttpStatus sendEvent(List<VesEvent> vesEvents, String dmaapId) {
clearVesUniqueIdFromEvent(vesEvents);
io.vavr.collection.List<String> events = mapListOfEventsToVavrList(vesEvents);
- Flux<MessageRouterPublishResponse> messageRouterPublishFlux = dmaapPublisher.publishEvents(events, dMaaPConfig.get(dmaapId));
+ HttpStatus rc = messageRouterPublishResponse(events, dmaapId);
+ return rc;
+ }
+
+ HttpStatus messageRouterPublishResponse(io.vavr.collection.List<String> events, String dmaapId) {
+ Flux<MessageRouterPublishResponse> messageRouterPublishFlux =
+ dmaapPublisher.publishEvents(events, dMaaPConfig.get(dmaapId));
MessageRouterPublishResponse messageRouterPublishResponse = messageRouterPublishFlux.blockFirst();
return getHttpStatus(Objects.requireNonNull(messageRouterPublishResponse));
+
}
private io.vavr.collection.List<String> mapListOfEventsToVavrList(List<VesEvent> 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<VesEvent> 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);
+ });
}
}
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;
+ " }");
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);
}
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"));
+ }
}
* ============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");
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;
assertThat(withOtherSegment.topic()).isEqualTo("DCAE-SE-COLLECTOR-EVENTS-DEV");
}
+ @Test
+ public void testPubConfigOverrideFunction() {
+ List<String> 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")));
+ }
}
--- /dev/null
+/*-
+ * ============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<String, PublisherConfig> dMaaPConfig = HashMap.of("key1", new PublisherConfig(null, null));
+ DMaaPEventPublisher dmaapEventpub = Mockito.spy(new DMaaPEventPublisher(dMaaPConfig));
+ java.util.List<VesEvent> 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<VesEvent> createEventToSend(String path) throws IOException, URISyntaxException {
+ String event = JsonDataLoader.loadContent(path);
+ JSONObject jsonObject = new JSONObject(event);
+ java.util.List<VesEvent> javaStringList = (List.of(new VesEvent(jsonObject))).toJavaList();
+ return javaStringList;
+ }
+
+ private MessageRouterPublishResponse successPublishResponse(List<JsonElement> items) {
+ return ImmutableMessageRouterPublishResponse.builder().items(items).build();
+ }
+
+}
major=1
minor=12
-patch=2
+patch=3
base_version=${major}.${minor}.${patch}
release_version=${base_version}
snapshot_version=${base_version}-SNAPSHOT