/** * http://pyyaml.org/ticket/196 */ public void testEmitQuoted() { List<String> list = new ArrayList<String>(3); list.add("This is an 'example'."); list.add("This is an \"example\"."); list.add("123"); String output = dump(list); assertEquals("[This is an 'example'., This is an \"example\"., '123']\n", output); // single quoted DumperOptions options = new DumperOptions(); options.setDefaultScalarStyle(ScalarStyle.SINGLE_QUOTED); Yaml yaml = new Yaml(options); String output2 = yaml.dump(list); // System.out.println(output2); assertEquals("- 'This is an ''example''.'\n- 'This is an \"example\".'\n- '123'\n", output2); // double quoted DumperOptions options2 = new DumperOptions(); options2.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED); yaml = new Yaml(options2); String output3 = yaml.dump(list); // System.out.println(output2); assertEquals("- \"This is an 'example'.\"\n- \"This is an \\\"example\\\".\"\n- \"123\"\n", output3); }
public void testSplitLineExpectFirstFlowSequenceItem() { DumperOptions options = new DumperOptions(); options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED); options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW); options.setWidth(8); Yaml yaml; String output; Map<String, Object> map = new TreeMap<String, Object>(); map.put("12345", Arrays.asList("1111111111")); // Split lines enabled (default) yaml = new Yaml(options); output = yaml.dump(map); assertEquals("{\"12345\": [\n \"1111111111\"]}\n", output); // Split lines disabled options.setSplitLines(false); assertFalse(options.getSplitLines()); yaml = new Yaml(options); output = yaml.dump(map); assertEquals("{\"12345\": [\"1111111111\"]}\n", output); }
public void testSplitLineExpectFlowSequenceItem() { DumperOptions options = new DumperOptions(); options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED); options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW); options.setWidth(8); Yaml yaml; String output; // Split lines enabled (default) yaml = new Yaml(options); output = yaml.dump(Arrays.asList("1111111111", "2222222222")); assertEquals("[\"1111111111\",\n \"2222222222\"]\n", output); output = yaml.dump(Arrays.asList("1", "2")); assertEquals("[\"1\", \"2\"]\n", output); // Split lines disabled options.setSplitLines(false); assertFalse(options.getSplitLines()); yaml = new Yaml(options); output = yaml.dump(Arrays.asList("1111111111", "2222222222")); assertEquals("[\"1111111111\", \"2222222222\"]\n", output); output = yaml.dump(Arrays.asList("1", "2")); assertEquals("[\"1\", \"2\"]\n", output); }
public void testDoubleQuotedStyle() { DumperOptions options = new DumperOptions(); options.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED); Yaml yaml = new Yaml(options); String output = yaml.dump("í"); // System.out.println(output); assertEquals("\"í\"\n", output); }
public void testDoubleQuotedStyle() { DumperOptions options = new DumperOptions(); options.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED); options.setWidth(20); options.setIndent(4); Yaml yaml = new Yaml(options); String etalon = "12345678901234567890\n\n123 456"; String output = yaml.dump(etalon); // System.out.println(output); assertEquals("\"12345678901234567890\\n\\\n \\n123 456\"\n", output); String parsed = (String) yaml.load(output); assertEquals(etalon, parsed); }
public void testDoubleQuotedStyleNoLineSplit() { DumperOptions options = new DumperOptions(); options.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED); options.setWidth(20); options.setSplitLines(false); options.setIndent(4); Yaml yaml = new Yaml(options); String etalon = "12345678901234567890\n\n123 456"; String output = yaml.dump(etalon); // System.out.println(output); assertEquals("\"12345678901234567890\\n\\n123 456\"\n", output); String parsed = (String) yaml.load(output); assertEquals(etalon, parsed); }
public void testLong() { DumperOptions options = new DumperOptions(); options.setDefaultScalarStyle(ScalarStyle.FOLDED); Yaml yaml = new Yaml(options); String result = yaml .dump("qqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqq " + "qqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqq " + "qqqqqqqqqqqqqqqqqqqqqqqqq 111111111111111111111111\n " + "qqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqq\n"); // System.out.println(result); assertTrue(result.startsWith(">\n")); assertEquals( ">\n qqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqq\n qqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqq 111111111111111111111111\n qqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqq\n", result); }
public void testExample_2_15() { String etalon = "Sammy Sosa completed another fine season with great stats.\n\n 63 Home Runs\n 0.288 Batting Average\n\nWhat a year!\n"; InputStream input = YamlDocument.class.getClassLoader().getResourceAsStream( YamlDocument.ROOT + "example2_15.yaml"); DumperOptions options = new DumperOptions(); options.setDefaultScalarStyle(ScalarStyle.FOLDED); Yaml yaml = new Yaml(options); String data = (String) yaml.load(input); assertEquals(etalon, data); // String dumped = yaml.dump(data); String etalonDumped = Util.getLocalResource("specification/example2_15_dumped.yaml"); assertEquals(etalonDumped, dumped); }
public void testWriteFolded() { DumperOptions options = new DumperOptions(); options.setDefaultScalarStyle(ScalarStyle.FOLDED); String folded = "0123456789 0123456789\n0123456789 0123456789"; Map<String, String> map = new LinkedHashMap<String, String>(); map.put("aaa", folded); map.put("bbb", "\nbla-bla\n"); Yaml yaml = new Yaml(options); String output = yaml.dump(map); String etalon = "\"aaa\": >-\n 0123456789 0123456789\n\n 0123456789 0123456789\n\"bbb\": >2\n\n bla-bla\n"; assertEquals(etalon, output); }
public void testWriteLiteral() { DumperOptions options = new DumperOptions(); options.setDefaultScalarStyle(ScalarStyle.LITERAL); String folded = "0123456789 0123456789 0123456789 0123456789"; Map<String, String> map = new LinkedHashMap<String, String>(); map.put("aaa", folded); map.put("bbb", "\nbla-bla\n"); Yaml yaml = new Yaml(options); String output = yaml.dump(map); String etalon = "\"aaa\": |-\n 0123456789 0123456789 0123456789 0123456789\n\"bbb\": |2\n\n bla-bla\n"; assertEquals(etalon, output); }
public void testWritePlain() { DumperOptions options = new DumperOptions(); options.setDefaultScalarStyle(ScalarStyle.PLAIN); String folded = "0123456789 0123456789\n0123456789 0123456789"; Map<String, String> map = new LinkedHashMap<String, String>(); map.put("aaa", folded); map.put("bbb", "\nbla-bla"); Yaml yaml = new Yaml(options); String output = yaml.dump(map); String etalon = "aaa: |-\n 0123456789 0123456789\n 0123456789 0123456789\nbbb: |2-\n\n bla-bla\n"; assertEquals(etalon, output); }
public void testWritePlainPretty() { DumperOptions options = new DumperOptions(); options.setDefaultScalarStyle(ScalarStyle.PLAIN); options.setPrettyFlow(true); String folded = "0123456789 0123456789\n0123456789 0123456789"; Map<String, String> map = new LinkedHashMap<String, String>(); map.put("aaa", folded); map.put("bbb", "\nbla-bla"); Yaml yaml = new Yaml(options); String output = yaml.dump(map); String etalon = "aaa: |-\n 0123456789 0123456789\n 0123456789 0123456789\nbbb: |2-\n\n bla-bla\n"; assertEquals(etalon, output); }
public void testWriteSingleQuoted() { DumperOptions options = new DumperOptions(); options.setDefaultScalarStyle(ScalarStyle.SINGLE_QUOTED); String folded = "0123456789 0123456789\n0123456789 0123456789"; Map<String, String> map = new LinkedHashMap<String, String>(); map.put("aaa", folded); map.put("bbb", "\nbla-bla"); Yaml yaml = new Yaml(options); String output = yaml.dump(map); String etalon = "'aaa': '0123456789 0123456789\n\n 0123456789 0123456789'\n'bbb': '\n\n bla-bla'\n"; assertEquals(etalon, output); }
public void testWriteDoubleQuoted() { DumperOptions options = new DumperOptions(); options.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED); String folded = "0123456789 0123456789\n0123456789 0123456789"; Map<String, String> map = new LinkedHashMap<String, String>(); map.put("aaa", folded); map.put("bbb", "\nbla-bla"); Yaml yaml = new Yaml(options); String output = yaml.dump(map); String etalon = "\"aaa\": \"0123456789 0123456789\\n0123456789 0123456789\"\n\"bbb\": \"\\nbla-bla\"\n"; assertEquals(etalon, output); }
public void testSplitLineExpectFirstFlowMappingKey() { DumperOptions options = new DumperOptions(); options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED); options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW); options.setWidth(16); Yaml yaml; String output; Map<String, String> nonSplitMap = new TreeMap<String, String>(); nonSplitMap.put("3", "4"); Map<String, Map<String, String>> nonSplitContainerMap = new TreeMap<String, Map<String, String>>(); nonSplitContainerMap.put("1 2", nonSplitMap); Map<String, String> splitMap = new TreeMap<String, String>(); splitMap.put("3333333333", "4444444444"); Map<String, Map<String, String>> splitContainerMap = new TreeMap<String, Map<String, String>>(); splitContainerMap.put("1111111111 2222222222", splitMap); // Split lines enabled (default) yaml = new Yaml(options); output = yaml.dump(splitContainerMap); assertEquals("{\"1111111111 2222222222\": {\n \"3333333333\": \"4444444444\"}}\n", output); output = yaml.dump(nonSplitContainerMap); assertEquals("{\"1 2\": {\"3\": \"4\"}}\n", output); // Split lines disabled options.setSplitLines(false); assertFalse(options.getSplitLines()); yaml = new Yaml(options); output = yaml.dump(splitContainerMap); assertEquals("{\"1111111111 2222222222\": {\"3333333333\": \"4444444444\"}}\n", output); output = yaml.dump(nonSplitContainerMap); assertEquals("{\"1 2\": {\"3\": \"4\"}}\n", output); }
public void testSplitLineExpectFlowMappingKey() { DumperOptions options = new DumperOptions(); options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED); options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW); options.setWidth(16); Yaml yaml; String output; Map<String, String> nonSplitMap = new TreeMap<String, String>(); nonSplitMap.put("1", "2"); nonSplitMap.put("3", "4"); Map<String, String> splitMap = new TreeMap<String, String>(); splitMap.put("1111111111", "2222222222"); splitMap.put("3333333333", "4444444444"); // Split lines enabled (default) yaml = new Yaml(options); output = yaml.dump(splitMap); assertEquals("{\"1111111111\": \"2222222222\",\n \"3333333333\": \"4444444444\"}\n", output); output = yaml.dump(nonSplitMap); assertEquals("{\"1\": \"2\", \"3\": \"4\"}\n", output); // Split lines disabled options.setSplitLines(false); assertFalse(options.getSplitLines()); yaml = new Yaml(options); output = yaml.dump(splitMap); assertEquals("{\"1111111111\": \"2222222222\", \"3333333333\": \"4444444444\"}\n", output); output = yaml.dump(nonSplitMap); assertEquals("{\"1\": \"2\", \"3\": \"4\"}\n", output); }
@SuppressWarnings("deprecation") private void processScalar() throws IOException { ScalarEvent ev = (ScalarEvent) event; if (analysis == null) { analysis = analyzeScalar(ev.getValue()); } if (style == null) { style = chooseScalarStyle(); } // TODO the next line should be removed style = options.calculateScalarStyle(analysis, ScalarStyle.createStyle(style)).getChar(); boolean split = !simpleKeyContext; if (style == null) { writePlain(analysis.scalar, split); } else { switch (style) { case '"': writeDoubleQuoted(analysis.scalar, split); break; case '\'': writeSingleQuoted(analysis.scalar, split); break; case '>': writeFolded(analysis.scalar); break; case '|': writeLiteral(analysis.scalar); break; default: throw new YAMLException("Unexpected style: " + style); } } analysis = null; style = null; }
public void setDefaultScalarStyle(ScalarStyle defaultStyle) { this.defaultScalarStyle = defaultStyle.getChar(); }
private Yaml createYaml() { DumperOptions options = new DumperOptions(); options.setAllowUnicode(false); options.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED); return new Yaml(options); }