From 7d609c2070c2ad69e95711fbb50b88d8db05e3ba Mon Sep 17 00:00:00 2001 From: econwar Date: Mon, 27 Aug 2018 13:07:22 +0000 Subject: [PATCH] Add Unit Tests for NodeUtils and StatusLog Change-Id: I694f6604d58078da10141fe4f15cba04f8226efc Signed-off-by: Conor Ward Issue-ID: DMAAP-101 --- .../org/onap/dmaap/datarouter/node/NodeUtils.java | 2 +- .../onap/dmaap/datarouter/node/NodeConfigTest.java | 2 + .../onap/dmaap/datarouter/node/NodeUtilsTest.java | 61 +++++++++++++++++++ .../onap/dmaap/datarouter/node/StatusLogTest.java | 71 ++++++++++++++++++++++ 4 files changed, 135 insertions(+), 1 deletion(-) mode change 100755 => 100644 datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeConfigTest.java create mode 100644 datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeUtilsTest.java create mode 100644 datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/StatusLogTest.java diff --git a/datarouter-node/src/main/java/org/onap/dmaap/datarouter/node/NodeUtils.java b/datarouter-node/src/main/java/org/onap/dmaap/datarouter/node/NodeUtils.java index 230afd4c..375a38e3 100644 --- a/datarouter-node/src/main/java/org/onap/dmaap/datarouter/node/NodeUtils.java +++ b/datarouter-node/src/main/java/org/onap/dmaap/datarouter/node/NodeUtils.java @@ -198,7 +198,7 @@ public class NodeUtils { if (i == -1) { return (null); } - return (new String[]{uriandparams.substring(i + 1, end - 1), uriandparams.substring(end + 1)}); + return (new String[]{uriandparams.substring(i + 1, end), uriandparams.substring(end + 1)}); } /** diff --git a/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeConfigTest.java b/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeConfigTest.java old mode 100755 new mode 100644 index 6350e640..18108172 --- a/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeConfigTest.java +++ b/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeConfigTest.java @@ -28,6 +28,7 @@ import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; +import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor; import org.powermock.modules.junit4.PowerMockRunner; import java.io.IOException; @@ -35,6 +36,7 @@ import java.io.Reader; import java.io.StringReader; @RunWith(PowerMockRunner.class) +@SuppressStaticInitializationFor({"org.onap.dmaap.datarouter.node.ProvData", "org.onap.dmaap.datarouter.node.NodeUtils"}) public class NodeConfigTest { private static NodeConfig nodeConfig; diff --git a/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeUtilsTest.java b/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeUtilsTest.java new file mode 100644 index 00000000..7dde043d --- /dev/null +++ b/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeUtilsTest.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * ============LICENSE_START================================================== + * * org.onap.dmaap + * * =========================================================================== + * * Copyright © 2017 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==================================================== + * * + * * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * * + ******************************************************************************/ +package org.onap.dmaap.datarouter.node; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@SuppressStaticInitializationFor("org.onap.dmaap.datarouter.node.NodeUtils") +public class NodeUtilsTest { + + @Test + public void Given_Uri_With_Params_Then_Get_Feed_And_File_Id_Returns_Correct_Values() { + String uri = "prov.datarouternew.com:8443/feed/12/fileName"; + String[] uriParams = NodeUtils.getFeedAndFileID(uri); + Assert.assertEquals("12", uriParams[0]); + Assert.assertEquals("fileName", uriParams[1]); + } + + @Test + public void Given_Uri_With_Illegal_Params_Then_Get_Feed_And_File_Id_Returns_Null() { + String uri = "prov.datarouternew.com:8443/feed"; + String[] uriParams = NodeUtils.getFeedAndFileID(uri); + Assert.assertNull(uriParams); + } + + @Test + public void Given_String_With_Escape_Fields_Then_Loge_Returns_Special_Chars() { + String s = NodeUtils.loge("\\search|pub|12\n"); + Assert.assertEquals("\\esearch\\ppub\\p12\\n", s); + } + + @Test + public void Given_String_With_Special_Chars_Then_Loge_Returns_String_With_Escape_Fields() { + String s = NodeUtils.unloge("\\esearch\\ppub\\p12\\n"); + Assert.assertEquals("\\search|pub|12\n", s); + } +} diff --git a/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/StatusLogTest.java b/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/StatusLogTest.java new file mode 100644 index 00000000..e60f576c --- /dev/null +++ b/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/StatusLogTest.java @@ -0,0 +1,71 @@ +/******************************************************************************* + * ============LICENSE_START================================================== + * * org.onap.dmaap + * * =========================================================================== + * * Copyright © 2017 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==================================================== + * * + * * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * * + ******************************************************************************/ +package org.onap.dmaap.datarouter.node; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor; +import org.powermock.modules.junit4.PowerMockRunner; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +@RunWith(PowerMockRunner.class) +@SuppressStaticInitializationFor("org.onap.dmaap.datarouter.node.NodeConfigManager") +@PrepareForTest(StatusLog.class) +public class StatusLogTest { + + @Before + public void setUp() { + PowerMockito.mockStatic(NodeConfigManager.class); + NodeConfigManager config = mock(NodeConfigManager.class); + when(config.getEventLogInterval()).thenReturn("5m"); + when(config.getEventLogPrefix()).thenReturn("logFile"); + when(config.getEventLogSuffix()).thenReturn(".log"); + PowerMockito.when(NodeConfigManager.getInstance()).thenReturn(config); + PowerMockito.mockStatic(System.class); + PowerMockito.when(System.currentTimeMillis()).thenReturn(1535367126000L); + } + + @Test + public void Given_Time_Interval_Parse_Interval_Returns_Correct_Value() { + long parsedTime = StatusLog.parseInterval("2h24m35s", 1); + Assert.assertEquals(8640000, parsedTime); + } + + @Test + public void Given_Time_Interval_In_Seconds_Parse_Interval_Returns_Correct_Value() { + long parsedTime = StatusLog.parseInterval("56784", 1); + Assert.assertEquals(43200000, parsedTime); + } + + @Test + public void Validate_Get_Cur_Log_File_Returns_Correct_File_Name() { + String logFile = StatusLog.getCurLogFile(); + Assert.assertTrue(logFile.matches("logFile-201808271[0-1]50.log")); + } +} -- 2.16.6