aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--appc-common/src/main/java/org/onap/appc/util/MessageFormatter.java12
-rw-r--r--appc-common/src/test/java/org/onap/appc/util/MessageFormatterTest.java72
2 files changed, 71 insertions, 13 deletions
diff --git a/appc-common/src/main/java/org/onap/appc/util/MessageFormatter.java b/appc-common/src/main/java/org/onap/appc/util/MessageFormatter.java
index 71ef40641..ba56867a0 100644
--- a/appc-common/src/main/java/org/onap/appc/util/MessageFormatter.java
+++ b/appc-common/src/main/java/org/onap/appc/util/MessageFormatter.java
@@ -32,13 +32,11 @@ import java.util.regex.Pattern;
public class MessageFormatter {
private final static String paramNameRegexGroupName = "paramName";
- private final static String paramRegex = "\\$\\{(?<paramName>[^}$]+)\\}"; // start with ${ and
- // after there is one
- // or more characters
- // that are not $ and
- // not } and ended
- // with }
+ /**
+ * start with ${ and after there is one or more characters that are not $ and not } and ended with }
+ */
+ private final static String paramRegex = "\\$\\{(?<paramName>[^}$]+)\\}";
public static String format(String messageTemplate, Map<String, Object> params) {
if (StringUtils.isEmpty(messageTemplate))
@@ -69,7 +67,7 @@ public class MessageFormatter {
public static List<String> getParamsNamesList(String messageTemplate) {
List<String> paramsNames = null;
if (!StringUtils.isEmpty(messageTemplate)) {
- paramsNames = new ArrayList<String>();
+ paramsNames = new ArrayList<>();
Matcher m = Pattern.compile(paramRegex).matcher(messageTemplate);
while (m.find()) {
String paramName = m.group(paramNameRegexGroupName);
diff --git a/appc-common/src/test/java/org/onap/appc/util/MessageFormatterTest.java b/appc-common/src/test/java/org/onap/appc/util/MessageFormatterTest.java
index 27f309fa9..fe7d1a532 100644
--- a/appc-common/src/test/java/org/onap/appc/util/MessageFormatterTest.java
+++ b/appc-common/src/test/java/org/onap/appc/util/MessageFormatterTest.java
@@ -1,18 +1,78 @@
package org.onap.appc.util;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import com.google.common.collect.Maps;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
-import org.junit.Assert;
+import java.util.Set;
+import org.apache.commons.lang3.StringUtils;
import org.junit.Test;
public class MessageFormatterTest {
@Test
- public void testEscapeDollarInMessgeFormatter() {
- String msg = "${SYNC_NEW201}";
+ public void format_should_return_empty_string_when_given_null_or_empty_message_template() {
+ assertEquals(StringUtils.EMPTY, MessageFormatter.format(null, Maps.newHashMap()));
+ assertEquals(StringUtils.EMPTY, MessageFormatter.format(StringUtils.EMPTY, Maps.newHashMap()));
+ }
+
+ @Test
+ public void should_return_same_string_when_given_null_or_empty_params() {
+ String message = "message";
+
+ assertEquals(message, MessageFormatter.format(message, null));
+ assertEquals(message, MessageFormatter.format(message, Maps.newHashMap()));
+ }
+
+ @Test
+ public void should_return_same_string_when_given_non_dollar_string() {
+ String msg = "vnfid";
+
+ Map<String, Object> respMsg = new HashMap<>();
+ respMsg.put("vnfid", "SYNC_NEW201");
+
+ assertEquals(msg, MessageFormatter.format(msg, respMsg));
+ }
+
+
+ @Test
+ public void should_replace_dollar_sign_statement_with_map_value() {
+ String message = "${vnfid} some sample text ${pnfid} additional sample text";
+
Map<String, Object> respMsg = new HashMap<>();
- respMsg.put("vnfid", msg);
- String formattedMsg = MessageFormatter.format(msg, respMsg);
- Assert.assertEquals(msg, formattedMsg);
+ respMsg.put("vnfid", "SYNC_NEW201");
+ respMsg.put("pnfid", "TEST-ID");
+
+ assertEquals("SYNC_NEW201 some sample text TEST-ID additional sample text",
+ MessageFormatter.format(message, respMsg));
+ }
+
+ @Test
+ public void getParamsNamesList_should_return_null_when_given_null_or_empty_message_template() {
+ assertEquals(null, MessageFormatter.getParamsNamesList(null));
+ assertEquals(null, MessageFormatter.getParamsNamesList(StringUtils.EMPTY));
+
+ assertEquals(null, MessageFormatter.getParamsNamesSet(null));
+ assertEquals(null, MessageFormatter.getParamsNamesSet(StringUtils.EMPTY));
+ }
+
+ @Test
+ public void should_recognize_params_inside_message_string() {
+ String message = "${vnfid} some sample text ${pnfid} additional sample text";
+
+ List<String> resultList = MessageFormatter.getParamsNamesList(message);
+
+ assertEquals(2, resultList.size());
+ assertTrue(resultList.contains("vnfid"));
+ assertTrue(resultList.contains("pnfid"));
+
+ Set<String> resultSet = MessageFormatter.getParamsNamesSet(message);
+
+ assertEquals(2, resultList.size());
+ assertTrue(resultSet.contains("vnfid"));
+ assertTrue(resultSet.contains("pnfid"));
}
}