import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.commons.text.StringEscapeUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
}
if (o instanceof String) {
- return escape ? escapeXml((String) o) : (String) o;
+ return escape ? StringEscapeUtils.escapeXml10((String) o) : (String) o;
};
if (o instanceof Map) {
Object v = entry.getValue();
String key = entry.getKey();
if (v instanceof String) {
- String s = escape ? escapeXml((String) v) : (String) v;
+ String s = escape ? StringEscapeUtils.escapeXml10((String) v) : (String) v;
ss.append(pad(indent)).append('<').append(key).append('>');
ss.append(s);
ss.append("</").append(key).append('>').append('\n');
@SuppressWarnings("unchecked")
private static void generateJson(StringBuilder ss, Object o, int indent, boolean padFirst, boolean escape, boolean quotes) {
if (o instanceof String) {
- String s = escape ? escapeJson((String) o) : (String) o;
+ String s = escape ? StringEscapeUtils.escapeJson((String) o) : (String) o;
if (padFirst) {
ss.append(pad(indent));
}
return s;
}
- private static String escapeXml(String v) {
- String s = v.replaceAll("&", "&");
- s = s.replaceAll("<", "<");
- s = s.replaceAll("'", "'");
- s = s.replaceAll("\"", """);
- s = s.replaceAll(">", ">");
- return s;
- }
-
- private static String escapeJson(String v) {
- String s = v.replaceAll("\\\\", "\\\\\\\\");
- s = s.replaceAll("\"", "\\\\\"");
- return s;
- }
-
private static String pad(int n) {
StringBuilder s = new StringBuilder();
for (int i = 0; i < n; i++) {
RestapiCallNode rcn = new RestapiCallNode();
String request = rcn.buildXmlJsonRequest(ctx, rcn.readFile("src/test/resources/testEmbeddedTemplate.json"), Format.JSON);
//This will throw a JSONException and fail the test case if rest api call node doesn't form valid JSON
- JSONObject requestObj = new JSONObject(request);
+ assertNotNull(new JSONObject(request));
+ }
+
+ @Test
+ public void testMultiLineEmbeddedJsonTemplate() throws Exception {
+ SvcLogicContext ctx = new SvcLogicContext();
+ String complexObj = "{\n"
+ + " \"image_name\": \"Ubuntu 14.04\",\n"
+ + " \"service-instance-id\": \"1\",\n"
+ + " \"vnf-model-customization-uuid\": \"2f\",\n"
+ + " \"vnf-id\": \"3b\"\n"
+ + "}";
+ ctx.setAttribute("reqId", "1235");
+ ctx.setAttribute("subReqId", "054243");
+ ctx.setAttribute("actionName", "CREATE");
+ ctx.setAttribute("myPrefix", "2016-09-09 16:30:35.0");
+ ctx.setAttribute("complexObj", complexObj);
+ RestapiCallNode rcn = new RestapiCallNode();
+ String request = rcn.buildXmlJsonRequest(ctx, rcn.readFile("src/test/resources/testMultiLineEmbeddedTemplate.json"), Format.JSON);
+ //This will throw a JSONException and fail the test case if rest api call node doesn't form valid JSON
+ assertNotNull(new JSONObject(request));
}
}