diff options
author | koblosz <sandra.koblosz@nokia.com> | 2018-05-22 17:13:35 +0200 |
---|---|---|
committer | koblosz <sandra.koblosz@nokia.com> | 2018-06-18 16:07:48 +0200 |
commit | e0194fbb1f8291ca0c23cc68840097b8d33670e5 (patch) | |
tree | 428cfe803eb10bdf7098f9a5cd67157d78c8f640 /src/test/java | |
parent | cea2e184ff50e91833efd23408d647ccb295e847 (diff) |
Refactor DmaapPropertyReader
Issue-ID: DCAEGEN2-522
Signed-off-by: KOBLOSZ SANDRA <sandra.koblosz@nokia.com>
Change-Id: I2d9928ff3ffeda0e204480f13e8c8bf91bddf912
Diffstat (limited to 'src/test/java')
3 files changed, 228 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");
- }
-
-}
-
|