You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by da...@apache.org on 2016/06/14 13:15:19 UTC
svn commit: r1748407 - in /felix/trunk/converter/src:
main/java/org/apache/felix/converter/impl/yaml/YamlEncodingImpl.java
test/java/org/apache/felix/converter/impl/yaml/YamlSerializationTest.java
Author: davidb
Date: Tue Jun 14 13:15:19 2016
New Revision: 1748407
URL: http://svn.apache.org/viewvc?rev=1748407&view=rev
Log:
Felix Converter Service - Additional testing for YAML codec
Modified:
felix/trunk/converter/src/main/java/org/apache/felix/converter/impl/yaml/YamlEncodingImpl.java
felix/trunk/converter/src/test/java/org/apache/felix/converter/impl/yaml/YamlSerializationTest.java
Modified: felix/trunk/converter/src/main/java/org/apache/felix/converter/impl/yaml/YamlEncodingImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/src/main/java/org/apache/felix/converter/impl/yaml/YamlEncodingImpl.java?rev=1748407&r1=1748406&r2=1748407&view=diff
==============================================================================
--- felix/trunk/converter/src/main/java/org/apache/felix/converter/impl/yaml/YamlEncodingImpl.java (original)
+++ felix/trunk/converter/src/main/java/org/apache/felix/converter/impl/yaml/YamlEncodingImpl.java Tue Jun 14 13:15:19 2016
@@ -108,7 +108,7 @@ public class YamlEncodingImpl implements
sb.append("\n");
sb.append(getIdentPrefix(level));
sb.append("- ");
- sb.append(encode(o));
+ sb.append(encode(o, level + 1));
}
return sb.toString();
}
@@ -117,24 +117,16 @@ public class YamlEncodingImpl implements
private String encodeMap(Map m, int level) {
StringBuilder sb = new StringBuilder();
for (Entry entry : (Set<Entry>) m.entrySet()) {
+ sb.append("\n");
sb.append(getIdentPrefix(level));
sb.append(entry.getKey().toString());
sb.append(": ");
- sb.append(needsNewlineBefore(entry.getValue()));
sb.append(encode(entry.getValue(), level + 1));
- sb.append("\n");
}
return sb.toString();
}
- private Object needsNewlineBefore(Object value) {
- if (value instanceof Map)
- return "\n";
-
- return "";
- }
-
private String getIdentPrefix(int level) {
int numSpaces = indentation * level;
StringBuilder sb = new StringBuilder(numSpaces);
Modified: felix/trunk/converter/src/test/java/org/apache/felix/converter/impl/yaml/YamlSerializationTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/src/test/java/org/apache/felix/converter/impl/yaml/YamlSerializationTest.java?rev=1748407&r1=1748406&r2=1748407&view=diff
==============================================================================
--- felix/trunk/converter/src/test/java/org/apache/felix/converter/impl/yaml/YamlSerializationTest.java (original)
+++ felix/trunk/converter/src/test/java/org/apache/felix/converter/impl/yaml/YamlSerializationTest.java Tue Jun 14 13:15:19 2016
@@ -16,6 +16,8 @@
*/
package org.apache.felix.converter.impl.yaml;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -51,4 +53,28 @@ public class YamlSerializationTest {
" b: 'hello'";
assertEquals(expected, new YamlCodecImpl().encode(m).toString().trim());
}
+
+ @Test
+ public void testComplexMapSerialization2() {
+ Map<String, Object> m2 = new LinkedHashMap<>();
+ m2.put("yes", Boolean.TRUE);
+ m2.put("no", Collections.singletonMap("maybe", false));
+
+ Map<String, Object> cm = new LinkedHashMap<>();
+ cm.put("list", Arrays.asList(
+ Collections.singletonMap("x", "y"),
+ Collections.singletonMap("x", "b")));
+ cm.put("embedded", m2);
+
+ String expected = "list: \n" +
+ " - \n" +
+ " x: 'y'\n" +
+ " - \n" +
+ " x: 'b'\n" +
+ "embedded: \n" +
+ " yes: true\n" +
+ " no: \n" +
+ " maybe: false";
+ assertEquals(expected, new YamlCodecImpl().encode(cm).toString().trim());
+ }
}