diff options
5 files changed, 157 insertions, 15 deletions
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 index 6350e640..18108172 100755..100644 --- 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")); + } +} diff --git a/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/NodeClass.java b/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/NodeClass.java index 28c3ec28..4c140490 100644 --- a/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/NodeClass.java +++ b/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/NodeClass.java @@ -3,7 +3,7 @@ * * 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
@@ -44,7 +44,7 @@ import org.onap.dmaap.datarouter.provisioning.utils.DB; */
public abstract class NodeClass extends Syncable {
private static Map<String, Integer> map;
-
+ private static Logger intLogger = Logger.getLogger("org.onap.dmaap.datarouter.provisioning.internal");
public NodeClass() {
// init on first use
if (map == null) {
@@ -68,11 +68,11 @@ public abstract class NodeClass extends Syncable { nextid = n + 1;
}
// take | separated list, add domain if needed.
- Logger intlogger = Logger.getLogger("org.onap.dmaap.datarouter.provisioning.internal");
+
for (String node : nodes) {
node = normalizeNodename(node);
if (!map.containsKey(node)) {
- intlogger.info("..adding " + node + " to NODES with index " + nextid);
+ intLogger.info("..adding " + node + " to NODES with index " + nextid);
map.put(node, nextid);
PreparedStatement ps = null;
try {
@@ -86,13 +86,14 @@ public abstract class NodeClass extends Syncable { ps.close();
db.release(conn);
} catch (SQLException e) {
- intlogger.warn("PROV0005 doInsert: " + e.getMessage());
- e.printStackTrace();
+ intLogger.error("PROV0005 doInsert: " + e.getMessage(),e);
} finally {
try {
- ps.close();
+ if(ps!=null){
+ ps.close();
+ }
} catch (SQLException e) {
- e.printStackTrace();
+ intLogger.error("Error in closing PreparedStatement: " + e.getMessage(),e);
}
}
nextid++;
@@ -119,25 +120,28 @@ public abstract class NodeClass extends Syncable { ps.close();
db.release(conn);
} catch (SQLException e) {
- e.printStackTrace();
+ intLogger.error("PROV0005 doInsert: " + e.getMessage(),e);
} finally {
try {
- ps.close();
+ if(ps!=null){
+ ps.close();
+ }
+
} catch (SQLException e) {
- e.printStackTrace();
+ intLogger.error("PROV0005 doInsert: " + e.getMessage(),e);
}
}
map = m;
}
- public static Integer lookupNodeName(final String name) throws IllegalArgumentException {
+ public static Integer lookupNodeName(final String name) {
Integer n = map.get(name);
if (n == null)
throw new IllegalArgumentException("Invalid node name: " + name);
return n;
}
- public static Collection<String> lookupNodeNames(String patt) throws IllegalArgumentException {
+ public static Collection<String> lookupNodeNames(String patt) {
Collection<String> coll = new TreeSet<String>();
final Set<String> keyset = map.keySet();
for (String s : patt.toLowerCase().split(",")) {
@@ -173,7 +177,11 @@ public abstract class NodeClass extends Syncable { String domain = p.getValue();
s += "." + domain;
}
+ return s.toLowerCase();
}
- return s.toLowerCase();
+ else{
+ return s;
+ }
+
}
}
|