summaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authorTony Hansen <tony@att.com>2018-06-20 14:05:07 +0000
committerGerrit Code Review <gerrit@onap.org>2018-06-20 14:05:07 +0000
commitb4d5236a7164b166d49cf8c0a5c15bb848e04cd6 (patch)
tree203c0102b9ba924eb6753e3029b89914d7011ebc /src/test
parentb462c0c78d197322aacaacfe0a1efefa5d63bcbb (diff)
parente0194fbb1f8291ca0c23cc68840097b8d33670e5 (diff)
Merge "Refactor DmaapPropertyReader"
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/onap/dcae/vestest/AnyNodeTest.java107
-rw-r--r--src/test/java/org/onap/dcae/vestest/DmaapPropertyReaderTest.java121
-rw-r--r--src/test/java/org/onap/dcae/vestest/TestDmaapPropertyReader.java53
-rw-r--r--src/test/resources/testFullDmaapConfig_channels.json13
-rw-r--r--src/test/resources/testFullDmaapConfig_gen2.json24
-rw-r--r--src/test/resources/test_anynode_class.json9
6 files changed, 274 insertions, 53 deletions
diff --git a/src/test/java/org/onap/dcae/vestest/AnyNodeTest.java b/src/test/java/org/onap/dcae/vestest/AnyNodeTest.java
new file mode 100644
index 00000000..1613465f
--- /dev/null
+++ b/src/test/java/org/onap/dcae/vestest/AnyNodeTest.java
@@ -0,0 +1,107 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PROJECT
+ * ================================================================================
+ * Copyright (C) 2018 Nokia Networks 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.vestest;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Sets;
+import org.json.JSONObject;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.dcae.commonFunction.AnyNode;
+
+import java.io.IOException;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+/**
+ * Created by koblosz on 07.06.18.
+ */
+public class AnyNodeTest {
+
+ private static final String SAMPLE_JSON_FILEPATH = "src/test/resources/test_anynode_class.json";
+ private static final Map<String, Object> EXPECTED_RAW_MAP = ImmutableMap.<String, Object>builder().put("a", 1).put("b", 2).build();
+ private static final Set<String> EXPECTED_JSON_KEYS = Sets.newHashSet("channels", "sampleStrList", "sampleNestedObject", "sampleInt", "sampleString", "sampleNull");
+ private static AnyNode node;
+
+
+ @BeforeClass
+ public static void setUpClass() throws IOException {
+ node = AnyNode.parse(SAMPLE_JSON_FILEPATH);
+ }
+
+ @Test(expected = IOException.class)
+ public void testShouldRethrowExceptionWhenFileNotFound() throws IOException {
+ AnyNode.parse("not/existng/path");
+ }
+
+ @Test
+ public void testShouldReturnJsonObjectKeySet() {
+ assertThat(node.getKeys()).containsOnlyElementsOf(EXPECTED_JSON_KEYS);
+ }
+
+ @Test
+ public void testShouldGetElementAsString() {
+ assertThat(node.get("sampleStrList").get(0).asString()).isEqualTo("1");
+ }
+
+ @Test
+ public void testShouldGetElementAsInt() {
+ assertThat(node.get("sampleInt").asInt()).isSameAs(1);
+ }
+
+ @Test
+ public void testWhenNullValuePresentShouldReturnJsonObjectNullAsString() {
+ assertThat(node.get("sampleNull").asString()).isSameAs(JSONObject.NULL.toString());
+ }
+
+ @Test
+ public void testShouldGetJsonObjectAsStringToObjectMap() {
+ assertThat(node.get("sampleNestedObject").asRawMap()).containsAllEntriesOf(EXPECTED_RAW_MAP);
+ }
+
+ @Test
+ public void testShouldGetAsMap() {
+ assertThat(node.asMap().keySet()).containsOnlyElementsOf(EXPECTED_JSON_KEYS);
+ }
+
+ @Test
+ public void testShouldGetAsList() {
+ assertThat(node.get("sampleStrList").asList().stream().map(AnyNode::asString).collect(Collectors.toList())).containsExactly("1", "2", "3", "4", "5");
+ }
+
+ @Test
+ public void testShouldGetAsOptional() {
+ assertThat(node.getAsOptional("absentKey")).isNotPresent();
+ }
+
+ @Test
+ public void testWhenChainMethodsShouldReturnValue() {
+ assertThat(node.get("channels").get(0).get("two").asString()).isEqualTo("number2");
+ }
+
+
+ @Test(expected = ClassCastException.class)
+ public void whenInvokedOnJsonObjInsteadOfJsonArrShouldRaiseRuntimeEx() {
+ node.asList();
+ }
+} \ No newline at end of file
diff --git a/src/test/java/org/onap/dcae/vestest/DmaapPropertyReaderTest.java b/src/test/java/org/onap/dcae/vestest/DmaapPropertyReaderTest.java
new file mode 100644
index 00000000..eadf62f2
--- /dev/null
+++ b/src/test/java/org/onap/dcae/vestest/DmaapPropertyReaderTest.java
@@ -0,0 +1,121 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * org.onap.dcaegen2.collectors.ves
+ * ================================================================================
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018 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.dcae.vestest;
+
+import com.google.common.collect.ImmutableMap;
+import org.junit.Test;
+import org.onap.dcae.commonFunction.DmaapPropertyReader;
+
+import java.net.MalformedURLException;
+import java.util.Map;
+
+import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
+
+public class DmaapPropertyReaderTest {
+
+
+ private static final String legacyConfigFilePath = "src/test/resources/testDmaapConfig_ip.json";
+ private static final String dmaapInputConfigFilePath = "src/test/resources/testDmaapConfig_gen2.json";
+ private static final String fullDmaapConfigWithChannels = "src/test/resources/testFullDmaapConfig_channels.json";
+ private static final String fullGen2DmaapConfig = "src/test/resources/testFullDmaapConfig_gen2.json";
+
+ private static final String FAULT_UEB_KEY_PREFIX = "sec_fault_ueb";
+ private static final String VES_ALERT_SND_KEY_PREFIX = "ves-thresholdCrossingAlert-secondary";
+ private static final String VES_FAULT_SECONDARY = "ves-fault-secondary";
+
+ private static final String FAULT_BASIC_AUTH_USERNAME_KEY = VES_FAULT_SECONDARY + ".basicAuthUsername";
+ private static final String ALERT_BASIC_AUTH_PWD_KEY = VES_ALERT_SND_KEY_PREFIX + ".basicAuthPassword";
+
+ private static final String VES_ALERT_CAMBRIA_TOPIC_KEY = VES_ALERT_SND_KEY_PREFIX + ".cambria.topic";
+ private static final String VES_ALERT_CAMBRIA_URL_KEY = VES_ALERT_SND_KEY_PREFIX + ".cambria.url";
+ private static final String VES_FAULT_SND_CAMBRIA_URL_KEY = VES_FAULT_SECONDARY + ".cambria.url";
+ private static final String VES_FAULT_SND_AUTH_PWD_KEY = VES_FAULT_SECONDARY + ".basicAuthPassword";
+ private static final String VES_FAULT_SND_CAMBRIA_TOPIC_KEY = VES_FAULT_SECONDARY + ".cambria.topic";
+ private static final String FAULT_UEB_CAMBRIA_HOSTS_KEY = FAULT_UEB_KEY_PREFIX + ".cambria.hosts";
+ private static final String FAULT_UEB_CAMBRIA_TOPIC_KEY = FAULT_UEB_KEY_PREFIX + ".cambria.topic";
+ private static final String VES_ALERT_SND_AUTH_USERNAME_KEY = VES_ALERT_SND_KEY_PREFIX + ".basicAuthUsername";
+
+ public static final String NULL_TOSTRING = "null";
+
+ private static final Map<String, String> expectedCompleteGen2DmaapConfig = ImmutableMap.<String, String>builder()
+ .put(ALERT_BASIC_AUTH_PWD_KEY, "SamplePassWD2")
+ .put(VES_ALERT_CAMBRIA_TOPIC_KEY, "DCAE-SE-COLLECTOR-EVENTS-DEV")
+ .put(FAULT_BASIC_AUTH_USERNAME_KEY, "sampleUsername")
+ .put(VES_ALERT_CAMBRIA_URL_KEY, "UEBHOST:3904")
+ .put(VES_FAULT_SND_CAMBRIA_URL_KEY, "UEBHOST:3904")
+ .put(VES_FAULT_SND_AUTH_PWD_KEY, "SamplePasswd")
+ .put(VES_FAULT_SND_CAMBRIA_TOPIC_KEY, "DCAE-SE-COLLECTOR-EVENTS-DEV")
+ .put(VES_ALERT_SND_AUTH_USERNAME_KEY, "sampleUsername2")
+ .build();
+
+ private static final Map<String, String> expectedIncompleteGen2DmaapConfig = ImmutableMap.<String, String>builder()
+ .put(VES_ALERT_SND_AUTH_USERNAME_KEY, NULL_TOSTRING)
+ .put(FAULT_BASIC_AUTH_USERNAME_KEY, NULL_TOSTRING)
+ .put(VES_ALERT_CAMBRIA_TOPIC_KEY, "DCAE-SE-COLLECTOR-EVENTS-DEV")
+ .put(VES_ALERT_CAMBRIA_URL_KEY, "UEBHOST:3904")
+ .put(VES_FAULT_SND_CAMBRIA_URL_KEY, "UEBHOST:3904")
+ .put(ALERT_BASIC_AUTH_PWD_KEY, NULL_TOSTRING)
+ .put(VES_FAULT_SND_AUTH_PWD_KEY, NULL_TOSTRING)
+ .put(VES_FAULT_SND_CAMBRIA_TOPIC_KEY, "DCAE-SE-COLLECTOR-EVENTS-DEV")
+ .build();
+
+ private static final Map<String, String> expectedCompleteChannelsDmaapConfig = ImmutableMap.<String, String>builder()
+ .put(FAULT_UEB_CAMBRIA_HOSTS_KEY, "uebsb91kcdc.it.att.com,uebsb92kcdc.it.att.com,uebsb93kcdc.it.att.com")
+ .put(FAULT_UEB_CAMBRIA_TOPIC_KEY, "DCAE-SE-COLLECTOR-EVENTS-DEV")
+ .put(FAULT_UEB_KEY_PREFIX + ".basicAuthPassword", "S0mEPassWD")
+ .put(FAULT_UEB_KEY_PREFIX + ".basicAuthUsername", "sampleUser")
+ .put(FAULT_UEB_KEY_PREFIX + ".cambria.url", "127.0.0.1:3904")
+ .build();
+
+ private static final Map<String, String> expectedIncompleteChannelsDmaapConfig = ImmutableMap.<String, String>builder()
+ .put(FAULT_UEB_CAMBRIA_HOSTS_KEY, "uebsb91kcdc.it.att.com,uebsb92kcdc.it.att.com,uebsb93kcdc.it.att.com")
+ .put(FAULT_UEB_CAMBRIA_TOPIC_KEY, "DCAE-SE-COLLECTOR-EVENTS-DEV")
+ .build();
+
+ @Test
+ public void testShouldCreateReaderWithAbsentParamsOmittedBasedOnChannelDmaapConfig() {
+ assertReaderPreservedAllEntriesAfterTransformation(legacyConfigFilePath, expectedIncompleteChannelsDmaapConfig);
+ }
+
+ @Test
+ public void testShouldCreateReaderWithAbsentParamsOmittedBasedOnGen2DmaapConfig() {
+ assertReaderPreservedAllEntriesAfterTransformation(dmaapInputConfigFilePath, expectedIncompleteGen2DmaapConfig);
+ }
+
+ @Test
+ public void shouldCreateReaderWithCompleteChannelDmaapConfig() {
+ assertReaderPreservedAllEntriesAfterTransformation(fullDmaapConfigWithChannels, expectedCompleteChannelsDmaapConfig);
+ }
+
+ @Test
+ public void shouldCreateReaderWithCompleteGen2DmaapConfig() throws MalformedURLException {
+ assertReaderPreservedAllEntriesAfterTransformation(fullGen2DmaapConfig, expectedCompleteGen2DmaapConfig);
+ }
+
+ private void assertReaderPreservedAllEntriesAfterTransformation(String dmaapConfigFilePath, Map<String, String> expectedMap) {
+ DmaapPropertyReader reader = new DmaapPropertyReader(dmaapConfigFilePath);
+
+ assertThat(reader.getDmaapProperties()).containsAllEntriesOf(expectedMap);
+ assertThat(expectedMap).containsAllEntriesOf(reader.getDmaapProperties());
+ }
+
+}
+
diff --git a/src/test/java/org/onap/dcae/vestest/TestDmaapPropertyReader.java b/src/test/java/org/onap/dcae/vestest/TestDmaapPropertyReader.java
deleted file mode 100644
index 1a7d9f7e..00000000
--- a/src/test/java/org/onap/dcae/vestest/TestDmaapPropertyReader.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * org.onap.dcaegen2.collectors.ves
- * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
- * Copyright (C) 2018 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.dcae.vestest;
-
-import static org.junit.Assert.assertEquals;
-
-import java.util.HashMap;
-import org.junit.Test;
-import org.onap.dcae.commonFunction.DmaapPropertyReader;
-
-public class TestDmaapPropertyReader {
-
- @Test
- public void shouldReadDMaaPHashes() {
- DmaapPropertyReader dmaapPropertyReader = new DmaapPropertyReader("src/test/resources/testDmaapConfig_ip.json");
- HashMap<String, String> dmaapHash = dmaapPropertyReader.dmaap_hash;
- assertEquals(dmaapHash.get("sec_fault_ueb.cambria.hosts"),
- "uebsb91kcdc.it.att.com,uebsb92kcdc.it.att.com,uebsb93kcdc.it.att.com");
- assertEquals(dmaapHash.get("sec_fault_ueb.cambria.topic"), "DCAE-SE-COLLECTOR-EVENTS-DEV");
- }
-
- @Test
- public void shouldReadDMaaPHashesForSecondGeneration() {
- DmaapPropertyReader dmaapPropertyReader = new DmaapPropertyReader(
- "src/test/resources/testDmaapConfig_gen2.json");
- HashMap<String, String> dmaapHash = dmaapPropertyReader.dmaap_hash;
- assertEquals(dmaapHash.get("ves-thresholdCrossingAlert-secondary.cambria.topic"),
- "DCAE-SE-COLLECTOR-EVENTS-DEV");
- assertEquals(dmaapHash.get("ves-thresholdCrossingAlert-secondary.cambria.url"), "UEBHOST:3904");
- assertEquals(dmaapHash.get("ves-fault-secondary.cambria.url"), "UEBHOST:3904");
- assertEquals(dmaapHash.get("ves-fault-secondary.cambria.topic"), "DCAE-SE-COLLECTOR-EVENTS-DEV");
- }
-
-}
-
diff --git a/src/test/resources/testFullDmaapConfig_channels.json b/src/test/resources/testFullDmaapConfig_channels.json
new file mode 100644
index 00000000..e2bc0339
--- /dev/null
+++ b/src/test/resources/testFullDmaapConfig_channels.json
@@ -0,0 +1,13 @@
+{
+ "channels": [
+ {
+ "name": "sec_fault_ueb",
+ "cambria.url": "127.0.0.1:3904",
+ "cambria.hosts": "uebsb91kcdc.it.att.com,uebsb92kcdc.it.att.com,uebsb93kcdc.it.att.com",
+ "cambria.topic": "DCAE-SE-COLLECTOR-EVENTS-DEV",
+ "basicAuthPassword": "S0mEPassWD",
+ "basicAuthUsername": "sampleUser",
+ "stripHpId": "true"
+ }
+ ]
+} \ No newline at end of file
diff --git a/src/test/resources/testFullDmaapConfig_gen2.json b/src/test/resources/testFullDmaapConfig_gen2.json
new file mode 100644
index 00000000..68804663
--- /dev/null
+++ b/src/test/resources/testFullDmaapConfig_gen2.json
@@ -0,0 +1,24 @@
+{
+ "ves-fault-secondary": {
+ "aaf_username": "sampleUsername",
+ "dmaap_info": {
+ "topic_url": "http://UEBHOST:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV",
+ "location": "mtl5",
+ "client_id": null,
+ "client_role": null
+ },
+ "type": "message_router",
+ "aaf_password": "SamplePasswd"
+ },
+ "ves-thresholdCrossingAlert-secondary": {
+ "aaf_username": "sampleUsername2",
+ "dmaap_info": {
+ "topic_url": "http://UEBHOST:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV",
+ "location": "mtl5",
+ "client_id": null,
+ "client_role": null
+ },
+ "type": "message_router",
+ "aaf_password": "SamplePassWD2"
+ }
+} \ No newline at end of file
diff --git a/src/test/resources/test_anynode_class.json b/src/test/resources/test_anynode_class.json
new file mode 100644
index 00000000..0d349451
--- /dev/null
+++ b/src/test/resources/test_anynode_class.json
@@ -0,0 +1,9 @@
+{
+ "channels": [{
+ "one": "number1", "two": "number2", "three": "number3"}],
+ "sampleStrList": ["1", "2", "3", "4", "5"],
+ "sampleNestedObject": {"a": 1, "b": 2},
+ "sampleInt": 1,
+ "sampleString": "str",
+ "sampleNull": null
+}