Skip to content

Commit dfbf2de

Browse files
Merge branch 'master' into fix#375-Add-schema-rules-for-discriminator-and-required-fields
2 parents 73cbb34 + e6f8c79 commit dfbf2de

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

src/Microsoft.OpenApi/Writers/SpecialCharacterStringExtensions.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,13 @@ public static class SpecialCharacterStringExtensions
5454
","
5555
};
5656

57+
// Plain style strings cannot end with these characters.
58+
// http://www.yaml.org/spec/1.2/spec.html#style/flow/plain
59+
private static readonly string[] _yamlPlainStringForbiddenTerminals =
60+
{
61+
":"
62+
};
63+
5764
// Double-quoted strings are needed for these non-printable control characters.
5865
// http://www.yaml.org/spec/1.2/spec.html#style/flow/double-quoted
5966
private static readonly char[] _yamlControlCharacters =
@@ -170,6 +177,7 @@ internal static string GetYamlCompatibleString(this string input)
170177
// http://www.yaml.org/spec/1.2/spec.html#style/flow/plain
171178
if (_yamlPlainStringForbiddenCombinations.Any(fc => input.Contains(fc)) ||
172179
_yamlIndicators.Any(i => input.StartsWith(i.ToString())) ||
180+
_yamlPlainStringForbiddenTerminals.Any(i => input.EndsWith(i.ToString())) ||
173181
input.Trim() != input)
174182
{
175183
// Escape single quotes with two single quotes.

test/Microsoft.OpenApi.Tests/Writers/OpenApiWriterSpecialCharacterTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ public void WriteStringWithSpecialCharactersAsJsonWorks(string input, string exp
6060
[InlineData("true", " 'true'")]
6161
[InlineData("trailingspace ", " 'trailingspace '")]
6262
[InlineData(" trailingspace", " ' trailingspace'")]
63+
[InlineData("terminal:", " 'terminal:'")]
6364
public void WriteStringWithSpecialCharactersAsYamlWorks(string input, string expected)
6465
{
6566
// Arrange

0 commit comments

Comments
 (0)