Skip to content

Commit 86e04ff

Browse files
authored
Merge pull request #1014 from Ne4to/invarian-culture-fix
fix: invariant culture for version field
2 parents 9d23f18 + a389eb6 commit 86e04ff

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

src/Microsoft.OpenApi/Writers/SpecialCharacterStringExtensions.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ internal static string GetYamlCompatibleString(this string input)
192192
if (decimal.TryParse(input, NumberStyles.Float, CultureInfo.InvariantCulture, out var _) ||
193193
IsHexadecimalNotation(input) ||
194194
bool.TryParse(input, out var _) ||
195-
DateTime.TryParse(input, out var _))
195+
DateTime.TryParse(input, CultureInfo.InvariantCulture, DateTimeStyles.None, out var _))
196196
{
197197
return $"'{input}'";
198198
}

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

+21
Original file line numberDiff line numberDiff line change
@@ -148,5 +148,26 @@ public void WriteStringWithNewlineCharactersInArrayAsYamlWorks(string input, str
148148
// Assert
149149
actual.Should().Be(expected);
150150
}
151+
152+
[Theory]
153+
[InlineData("1.8.0", " '1.8.0'", "en-US")]
154+
[InlineData("1.8.0", " '1.8.0'", "en-GB")]
155+
[InlineData("1.13.0", " '1.13.0'", "en-US")]
156+
[InlineData("1.13.0", " '1.13.0'", "en-GB")]
157+
public void WriteStringAsYamlDoesNotDependOnSystemCulture(string input, string expected, string culture)
158+
{
159+
CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo(culture);
160+
161+
// Arrange
162+
var outputStringWriter = new StringWriter(CultureInfo.InvariantCulture);
163+
var writer = new OpenApiYamlWriter(outputStringWriter);
164+
165+
// Act
166+
writer.WriteValue(input);
167+
var actual = outputStringWriter.GetStringBuilder().ToString();
168+
169+
// Assert
170+
actual.Should().Be(expected);
171+
}
151172
}
152173
}

0 commit comments

Comments
 (0)