From 5fe82ede72e2207ef978465365fb60094d766223 Mon Sep 17 00:00:00 2001 From: Andrey Somov Date: Tue, 24 Sep 2024 23:32:42 +0400 Subject: [PATCH] Add a test to prove that no space is needed after an alias --- src/changes/changes.xml | 8 +++- .../issues/issue377/SpaceAfterAliasTest.java | 44 +++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 src/test/java/org/yaml/snakeyaml/issues/issue377/SpaceAfterAliasTest.java diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 54e6a79af..aefc96ad8 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -5,7 +5,13 @@ YAML 1.1 parser and emitter - + + + Add a test to prove that no space is needed after an alias. + It is different with SnakeYAML Engine where it is required. + + + Fix issue with a big YAML with emoji (thanks to Madalin Ilie) diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue377/SpaceAfterAliasTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue377/SpaceAfterAliasTest.java new file mode 100644 index 000000000..a81a86c65 --- /dev/null +++ b/src/test/java/org/yaml/snakeyaml/issues/issue377/SpaceAfterAliasTest.java @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2008, SnakeYAML + * + * 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. + */ +package org.yaml.snakeyaml.issues.issue377; + +import org.junit.Test; +import org.yaml.snakeyaml.DumperOptions; +import org.yaml.snakeyaml.LoaderOptions; +import org.yaml.snakeyaml.Yaml; + +import java.util.HashMap; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +/** + * Test issue 54 for SnakeYAML Engine (no space is needed after an alias) + */ +public class SpaceAfterAliasTest { + @Test + public void testNoSpaceIsRequired() { + HashMap map = new HashMap<>(); + map.put(":one", true); + map.put(map, true); + DumperOptions dumperOptions = new DumperOptions(); + LoaderOptions loaderOptions = new LoaderOptions(); + loaderOptions.setAllowRecursiveKeys(true); + Yaml yaml = new Yaml(loaderOptions); + String output = yaml.dump(map); + assertEquals("&id001\n" + ":one: true\n" + "*id001: true\n", output); + Object parsed = yaml.load(output); + assertNotNull(parsed); + } +}