summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMukesh Paliwal <mukesh.paliwal1@huawei.com>2022-05-17 21:40:59 +0530
committerMukesh Paliwal <mukesh.paliwal1@huawei.com>2022-05-21 00:33:38 +0530
commitdfbae36928e95b9232cb879d880ac6e3e3e01520 (patch)
treeab85465d5247c399a2871ba8e14386e1de2a6814
parent715355b2b8bf7fe05e949df234e03d05e1554477 (diff)
CodeCoverage improvement for dcaegen2-collectors-restconf
Issue-ID: DCAEGEN2-3166 Signed-off-by: Mukesh Paliwal <mukesh.paliwal1@huawei.com> Change-Id: I03de7bf0cef8eb2c2545cad9c342745c3f0e06b9
-rw-r--r--Changelog.md3
-rw-r--r--pom.xml2
-rw-r--r--src/test/java/org/onap/dcae/ApplicationExceptionTest.java37
-rw-r--r--src/test/java/org/onap/dcae/ApplicationSettingsTest.java89
-rw-r--r--src/test/java/org/onap/dcae/common/publishing/DMaaPConfigurationParserTest.java69
-rw-r--r--src/test/java/org/onap/dcae/common/publishing/DmaapRequestConfigurationTest.java87
-rw-r--r--src/test/java/org/onap/dcae/common/publishing/MessageRouterHttpStatusMapperTest.java64
-rw-r--r--version.properties2
8 files changed, 349 insertions, 4 deletions
diff --git a/Changelog.md b/Changelog.md
index 2bfa26f..18e0373 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -4,6 +4,9 @@ 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.3.3] - 2022/05/21
+ - [DCAEGEN2-3166] - CodeCoverage improvement for dcaegen2-collectors-restconf
+
## [1.3.2] - 2022/02/23
- [DCAEGEN2-3043] - Vulnerability updates for J release (gson, logback-core)
diff --git a/pom.xml b/pom.xml
index 9ef7d88..ec3c17b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,7 +27,7 @@ limitations under the License.
</parent>
<groupId>org.onap.dcaegen2.collectors.restconf</groupId>
<artifactId>restconfcollector</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<name>dcaegen2-collectors-restconf</name>
<description>RestConfCollector</description>
<properties>
diff --git a/src/test/java/org/onap/dcae/ApplicationExceptionTest.java b/src/test/java/org/onap/dcae/ApplicationExceptionTest.java
new file mode 100644
index 0000000..289c472
--- /dev/null
+++ b/src/test/java/org/onap/dcae/ApplicationExceptionTest.java
@@ -0,0 +1,37 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * org.onap.dcaegen2.restconfcollector
+ * ================================================================================
+ * Copyright (C) 2022 Huawei. 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;
+
+import org.junit.Test;
+
+import javax.naming.ConfigurationException;
+
+public class ApplicationExceptionTest {
+ @Test
+ public void TestApplicationException() {
+ Exception ex = new Exception();
+ ConfigurationException confEx = new ConfigurationException();
+ ApplicationException example = new ApplicationException("Exception");
+ ApplicationException example1 = new ApplicationException("Exception", ex);
+ ApplicationException example2 = new ApplicationException(ex);
+ ApplicationException example3 = new ApplicationException(confEx);
+ }
+}
diff --git a/src/test/java/org/onap/dcae/ApplicationSettingsTest.java b/src/test/java/org/onap/dcae/ApplicationSettingsTest.java
index d16953a..4661283 100644
--- a/src/test/java/org/onap/dcae/ApplicationSettingsTest.java
+++ b/src/test/java/org/onap/dcae/ApplicationSettingsTest.java
@@ -4,7 +4,7 @@
* ================================================================================
* Copyright (C) 2018 Nokia. All rights reserved.
* Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
- * Copyright (C) 2018-2019 Huawei. All rights reserved.
+ * Copyright (C) 2018-2022 Huawei. 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.
@@ -116,6 +116,27 @@ public class ApplicationSettingsTest {
}
@Test
+ public void shouldLoadPropertiesFromFile() throws IOException {
+ // given
+ String[] cliArguments = {"-section.subSection1", "abc"};
+ File tempConfFile = File.createTempFile("doesNotMatter", "doesNotMatter");
+ Files.write(tempConfFile.toPath(), singletonList("section.subSection1=zxc"));
+ tempConfFile.deleteOnExit();
+
+ // when
+ ApplicationSettings configurationAccessor = new ApplicationSettings(cliArguments, CLIUtils::processCmdLine);
+ String actuallyOverridenByCliParam = configurationAccessor.getStringDirectly("section.subSection1");
+
+ // then
+ assertEquals("abc", actuallyOverridenByCliParam);
+
+ configurationAccessor.loadPropertiesFromFile();
+
+ boolean auth = configurationAccessor.clientTlsAuthenticationEnabled();
+ assertEquals(auth, false);
+ }
+
+ @Test
public void shouldReturnDefaultHttpPort() throws IOException {
// when
int applicationPort = fromTemporaryConfiguration().httpPort();
@@ -306,6 +327,20 @@ public class ApplicationSettingsTest {
}
@Test
+ public void shouldConfigurationFileLocation() throws IOException {
+
+ try {
+ String[] cliArguments = {"-param1", "param1value", "-param2", "param2value"};
+ // when
+ ApplicationSettings configurationAccessor = new ApplicationSettings(cliArguments, CLIUtils::processCmdLine);
+ Path path = configurationAccessor.configurationFileLocation();
+ assertTrue(path.endsWith("collector.properties"));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Test
public void shouldrccKeystorePathExistDefault() throws IOException {
// when
String path = fromTemporaryConfiguration().rccKeystoreFileLocation();
@@ -368,6 +403,56 @@ public class ApplicationSettingsTest {
assertEquals(stream, null);
}
+ @Test
+ public void shouldGetStringDirectly() {
+ // given
+ String[] cliArguments = {"-param1", "param1value"};
+
+ // when
+ ApplicationSettings configurationAccessor = new ApplicationSettings(cliArguments, CLIUtils::processCmdLine);
+ String param1value = configurationAccessor.getStringDirectly("param1");
+
+ // then
+ assertEquals("param1value", param1value);
+ }
+
+ @Test
+ public void shouldAddOrUpdate() {
+ // given
+ String[] cliArguments = {"-param1", "param1value"};
+
+ // when
+ ApplicationSettings configurationAccessor = new ApplicationSettings(cliArguments, CLIUtils::processCmdLine);
+ configurationAccessor.addOrUpdate("collector.rcc.test", null);
+ configurationAccessor.addOrUpdate("collector.rcc.test", "1");
+ }
+
+ @Test
+ public void shouldControllerConfigFileLocation() throws IOException {
+ // given
+ String[] cliArguments = {"-param1", "param1value"};
+
+ // when
+ ApplicationSettings configurationAccessor = new ApplicationSettings(cliArguments, CLIUtils::processCmdLine);
+ String param1value = configurationAccessor.controllerConfigFileLocation();
+
+ // then
+ assertTrue(param1value.endsWith("ont_config.json"));
+ }
+
+ @Test
+ public void shouldConfigurationUpdateFrequency() throws IOException {
+ // given
+ String[] cliArguments = {"-param1", "param1value"};
+
+ // when
+ ApplicationSettings configurationAccessor = new ApplicationSettings(cliArguments, CLIUtils::processCmdLine);
+ int param1value = configurationAccessor.configurationUpdateFrequency();
+
+ // then
+ assertEquals(5, param1value);
+ }
+
private static ApplicationSettings fromTemporaryConfiguration(String... fileLines)
throws IOException {
File tempConfFile = File.createTempFile("doesNotMatter", "doesNotMatter");
@@ -382,4 +467,4 @@ public class ApplicationSettingsTest {
private String sanitizePath(String path) {
return Paths.get(path).toString();
}
-} \ No newline at end of file
+}
diff --git a/src/test/java/org/onap/dcae/common/publishing/DMaaPConfigurationParserTest.java b/src/test/java/org/onap/dcae/common/publishing/DMaaPConfigurationParserTest.java
new file mode 100644
index 0000000..e2c9418
--- /dev/null
+++ b/src/test/java/org/onap/dcae/common/publishing/DMaaPConfigurationParserTest.java
@@ -0,0 +1,69 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * org.onap.dcaegen2.restconfcollector
+ * ================================================================================
+ * Copyright (C) 2022 Huawei. 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 static io.vavr.API.List;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.onap.dcae.common.publishing.DMaaPConfigurationParser.parseToDomainMapping;
+
+import io.vavr.collection.Map;
+import io.vavr.control.Try;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import org.junit.Test;
+
+public class DMaaPConfigurationParserTest {
+
+ @Test
+ public void testParseCredentialsForGen2() {
+ Path path = Paths.get("src/test/resources/testParseDMaaPCredentialsGen2.json");
+ Try<Map<String, PublisherConfig>> publisherConfigs = parseToDomainMapping(path);
+
+ PublisherConfig authCredentialsNulls = publisherConfigs.get().get("auth-credentials-null").getOrNull();
+ assertThat(authCredentialsNulls.userName().isEmpty()).isTrue();
+ assertThat(authCredentialsNulls.password().isEmpty()).isTrue();
+ assertThat(authCredentialsNulls.isSecured()).isFalse();
+
+ PublisherConfig authCredentialsPresent = publisherConfigs.get().get("auth-credentials-present").getOrNull();
+ assertThat(authCredentialsPresent.userName().getOrNull()).isEqualTo("sampleUser");
+ assertThat(authCredentialsPresent.password().getOrNull()).isEqualTo("samplePassword");
+ assertThat(authCredentialsPresent.isSecured()).isTrue();
+
+ PublisherConfig authCredentialsKeysMissing = publisherConfigs.get().get("auth-credentials-missing").getOrNull();
+ assertThat(authCredentialsKeysMissing.userName().isEmpty()).isTrue();
+ assertThat(authCredentialsKeysMissing.password().isEmpty()).isTrue();
+ assertThat(authCredentialsKeysMissing.isSecured()).isFalse();
+ }
+
+ @Test
+ public void testParseGen2() {
+ Path path = Paths.get("src/test/resources/testParseDMaaPGen2.json");
+ Try<Map<String, PublisherConfig>> publisherConfigs = parseToDomainMapping(path);
+
+ PublisherConfig withEventsSegment = publisherConfigs.get().get("event-segments-with-port").getOrNull();
+ assertThat(withEventsSegment.destinations()).isEqualTo(List("UEBHOST:3904"));
+ assertThat(withEventsSegment.topic()).isEqualTo("DCAE-SE-COLLECTOR-EVENTS-DEV");
+
+ PublisherConfig withOtherSegment = publisherConfigs.get().get("other-segments-without-ports").getOrNull();
+ assertThat(withOtherSegment.destinations()).isEqualTo(List("UEBHOST"));
+ assertThat(withOtherSegment.topic()).isEqualTo("DCAE-SE-COLLECTOR-EVENTS-DEV");
+ }
+
+}
diff --git a/src/test/java/org/onap/dcae/common/publishing/DmaapRequestConfigurationTest.java b/src/test/java/org/onap/dcae/common/publishing/DmaapRequestConfigurationTest.java
new file mode 100644
index 0000000..e6b7c36
--- /dev/null
+++ b/src/test/java/org/onap/dcae/common/publishing/DmaapRequestConfigurationTest.java
@@ -0,0 +1,87 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * org.onap.dcaegen2.restconfcollector
+ * ================================================================================
+ * Copyright (C) 2022 Huawei. 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 com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.json.JSONObject;
+import org.junit.Test;
+
+import io.vavr.control.Option;
+import io.vavr.collection.List;
+import org.onap.dcaegen2.services.sdk.model.streams.dmaap.ImmutableMessageRouterSink;
+import reactor.core.publisher.Flux;
+
+import static org.junit.Assert.assertEquals;
+import static org.onap.dcae.common.publishing.DmaapRequestConfiguration.createPublishRequest;
+import static org.onap.dcae.common.publishing.DmaapRequestConfiguration.retryConfiguration;
+import static org.onap.dcae.common.publishing.DmaapRequestConfiguration.jsonBatch;
+import static org.onap.dcae.common.publishing.DmaapRequestConfiguration.createMessageRouterSink;
+import static org.onap.dcae.common.publishing.DmaapRequestConfiguration.getAsJsonElements;
+
+
+public class DmaapRequestConfigurationTest {
+
+ private static final Long TIMEOUT_SECONDS = 10L;
+
+ @Test
+ public void createPublishRequestTest () {
+ List<String> list = List.of("test");
+ PublisherConfig publisherConfig = new PublisherConfig(list, "topic");
+ Option<PublisherConfig> pb = Option.of(publisherConfig);
+ createPublishRequest(pb);
+ }
+
+ @Test
+ public void createPublishRequest2Test () {
+ List<String> list = List.of("test");
+ PublisherConfig publisherConfig = new PublisherConfig(list, "topic");
+ Option<PublisherConfig> pb = Option.of(publisherConfig);
+ createPublishRequest(pb, TIMEOUT_SECONDS);
+ }
+
+ @Test
+ public void retryConfigurationTest () {
+ retryConfiguration();
+ }
+
+ @Test
+ public void jsonBatchTest () {
+ JSONObject obj = new JSONObject();
+ obj.put("message", "hello world!!!");
+ List<String> listStr = List.of("{message: 'Hello World!!!'}");
+ Flux<JsonObject> fjso = jsonBatch(listStr);
+ }
+
+ @Test
+ public void createMessageRouterSinkTest () {
+ ImmutableMessageRouterSink imrs = createMessageRouterSink("testUrl");
+ assertEquals("testUrl", imrs.topicUrl());
+ }
+
+ @Test
+ public void getAsJsonElementsTest () {
+ List<String> listStr = List.of("test_message");
+ List<JsonElement> jsList = getAsJsonElements(listStr);
+ JsonElement element = new JsonPrimitive("test_message");
+ assertEquals(element, jsList.get(0));
+ }
+}
diff --git a/src/test/java/org/onap/dcae/common/publishing/MessageRouterHttpStatusMapperTest.java b/src/test/java/org/onap/dcae/common/publishing/MessageRouterHttpStatusMapperTest.java
new file mode 100644
index 0000000..75f3998
--- /dev/null
+++ b/src/test/java/org/onap/dcae/common/publishing/MessageRouterHttpStatusMapperTest.java
@@ -0,0 +1,64 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * org.onap.dcaegen2.restconfcollector
+ * ================================================================================
+ * Copyright (C) 2022 Huawei. 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 org.junit.jupiter.api.Test;
+import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.MessageRouterPublishResponse;
+import org.springframework.http.HttpStatus;
+
+import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import static org.onap.dcae.ApplicationSettings.responseCompatibility;
+import static org.onap.dcae.common.publishing.MessageRouterHttpStatusMapper.getHttpStatus;
+
+class MessageRouterHttpStatusMapperTest {
+
+ public static final String BACKWARDS_COMPATIBILITY = "v7.2";
+ public static final String BACKWARDS_COMPATIBILITY_NONE = "NONE";
+
+ @Test
+ void shouldResponse202() {
+ //given
+ responseCompatibility = BACKWARDS_COMPATIBILITY;
+ MessageRouterPublishResponse messageRouterPublishResponse = mock(MessageRouterPublishResponse.class);
+ when(messageRouterPublishResponse.successful()).thenReturn(true);
+
+ //when
+ HttpStatus httpStatusResponse = getHttpStatus(messageRouterPublishResponse);
+
+ //then
+ assertSame(HttpStatus.ACCEPTED, httpStatusResponse);
+ }
+
+ @Test
+ void shouldResponse200WhenBackwardsCompatibilityIsNone() {
+ //given
+ responseCompatibility = BACKWARDS_COMPATIBILITY_NONE;
+ MessageRouterPublishResponse messageRouterPublishResponse = mock(MessageRouterPublishResponse.class);
+ when(messageRouterPublishResponse.successful()).thenReturn(true);
+
+ //when
+ HttpStatus httpStatusResponse = getHttpStatus(messageRouterPublishResponse);
+
+ //then
+ assertSame(HttpStatus.OK, httpStatusResponse);
+ }
+}
diff --git a/version.properties b/version.properties
index ef20baa..fd60497 100644
--- a/version.properties
+++ b/version.properties
@@ -1,6 +1,6 @@
major=1
minor=3
-patch=2
+patch=3
base_version=${major}.${minor}.${patch}
release_version=${base_version}
snapshot_version=${base_version}-SNAPSHOT