Skip to content

Commit b60ca92

Browse files
committed
Ensure OpenApiWriterSpecialCharacterTests cover terse output
1 parent 8395a47 commit b60ca92

File tree

1 file changed

+29
-12
lines changed

1 file changed

+29
-12
lines changed

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

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT license.
33

4+
using System.Collections.Generic;
45
using System.Globalization;
56
using System.IO;
7+
using System.Linq;
68
using FluentAssertions;
79
using Microsoft.OpenApi.Writers;
810
using Xunit;
@@ -20,20 +22,35 @@ public OpenApiWriterSpecialCharacterTests(ITestOutputHelper output)
2022
_output = output;
2123
}
2224

25+
static bool[] shouldProduceTerseOutputValues = new[] { true, false };
26+
27+
public static IEnumerable<object[]> StringWithSpecialCharacters
28+
{
29+
get
30+
{
31+
return
32+
from inputExpected in new[] {
33+
new[]{ "Test\bTest", "\"Test\\bTest\"" },
34+
new[]{ "Test\fTest", "\"Test\\fTest\""},
35+
new[]{ "Test\nTest", "\"Test\\nTest\""},
36+
new[]{ "Test\rTest", "\"Test\\rTest\""},
37+
new[]{ "Test\tTest", "\"Test\\tTest\""},
38+
new[]{ "Test\\Test", "\"Test\\\\Test\""},
39+
new[]{ "Test\"Test", "\"Test\\\"Test\""},
40+
new[]{ "StringsWith\"Quotes\"", "\"StringsWith\\\"Quotes\\\"\""},
41+
}
42+
from shouldBeTerse in shouldProduceTerseOutputValues
43+
select new object[] { inputExpected[0], inputExpected[1], shouldBeTerse };
44+
}
45+
}
46+
2347
[Theory]
24-
[InlineData("Test\bTest", "\"Test\\bTest\"")]
25-
[InlineData("Test\fTest", "\"Test\\fTest\"")]
26-
[InlineData("Test\nTest", "\"Test\\nTest\"")]
27-
[InlineData("Test\rTest", "\"Test\\rTest\"")]
28-
[InlineData("Test\tTest", "\"Test\\tTest\"")]
29-
[InlineData("Test\\Test", "\"Test\\\\Test\"")]
30-
[InlineData("Test\"Test", "\"Test\\\"Test\"")]
31-
[InlineData("StringsWith\"Quotes\"", "\"StringsWith\\\"Quotes\\\"\"")]
32-
public void WriteStringWithSpecialCharactersAsJsonWorks(string input, string expected)
48+
[MemberData(nameof(StringWithSpecialCharacters))]
49+
public void WriteStringWithSpecialCharactersAsJsonWorks(string input, string expected, bool produceTerseOutput)
3350
{
3451
// Arrange
3552
var outputStringWriter = new StringWriter(CultureInfo.InvariantCulture);
36-
var writer = new OpenApiJsonWriter(outputStringWriter);
53+
var writer = new OpenApiJsonWriter(outputStringWriter, new OpenApiJsonWriterSettings { Terse = produceTerseOutput });
3754

3855
// Act
3956
writer.WriteValue(input);
@@ -75,7 +92,7 @@ public void WriteStringWithSpecialCharactersAsYamlWorks(string input, string exp
7592
// Assert
7693
actual.Should().Be(expected);
7794
}
78-
95+
7996
[Theory]
8097
[InlineData("multiline\r\nstring", "test: |-\n multiline\n string")]
8198
[InlineData("ends with\r\nline break\r\n", "test: |\n ends with\n line break")]
@@ -103,7 +120,7 @@ public void WriteStringWithNewlineCharactersInObjectAsYamlWorks(string input, st
103120
// Assert
104121
actual.Should().Be(expected);
105122
}
106-
123+
107124
[Theory]
108125
[InlineData("multiline\r\nstring", "- |-\n multiline\n string")]
109126
[InlineData("ends with\r\nline break\r\n", "- |\n ends with\n line break")]

0 commit comments

Comments
 (0)