Skip to content

Commit 821e6b7

Browse files
committed
Ensure OpenApiRequestBodyTests cover terse output
1 parent 14478e3 commit 821e6b7

7 files changed

+49
-47
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"description": "description",
3+
"content": {
4+
"application/json": {
5+
"schema": {
6+
"type": "string"
7+
}
8+
}
9+
},
10+
"required": true
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"description":"description","content":{"application/json":{"schema":{"type":"string"}}},"required":true}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"description": "description",
3+
"content": {
4+
"application/json": {
5+
"schema": {
6+
"type": "string"
7+
}
8+
}
9+
},
10+
"required": true
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"description":"description","content":{"application/json":{"schema":{"type":"string"}}},"required":true}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"$ref": "#/components/requestBodies/example1"
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"$ref":"#/components/requestBodies/example1"}

test/Microsoft.OpenApi.Tests/Models/OpenApiRequestBodyTests.cs

Lines changed: 21 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,17 @@
33

44
using System.Globalization;
55
using System.IO;
6-
using FluentAssertions;
6+
using System.Threading.Tasks;
77
using Microsoft.OpenApi.Models;
88
using Microsoft.OpenApi.Writers;
9+
using VerifyXunit;
910
using Xunit;
1011
using Xunit.Abstractions;
1112

1213
namespace Microsoft.OpenApi.Tests.Models
1314
{
1415
[Collection("DefaultSettings")]
16+
[UsesVerify]
1517
public class OpenApiRequestBodyTests
1618
{
1719
public static OpenApiRequestBody AdvancedRequestBody = new OpenApiRequestBody
@@ -58,86 +60,58 @@ public OpenApiRequestBodyTests(ITestOutputHelper output)
5860
_output = output;
5961
}
6062

61-
[Fact]
62-
public void SerializeAdvancedRequestBodyAsV3JsonWorks()
63+
[Theory]
64+
[InlineData(true)]
65+
[InlineData(false)]
66+
public async Task SerializeAdvancedRequestBodyAsV3JsonWorksAsync(bool produceTerseOutput)
6367
{
6468
// Arrange
6569
var outputStringWriter = new StringWriter(CultureInfo.InvariantCulture);
66-
var writer = new OpenApiJsonWriter(outputStringWriter);
67-
var expected =
68-
@"{
69-
""description"": ""description"",
70-
""content"": {
71-
""application/json"": {
72-
""schema"": {
73-
""type"": ""string""
74-
}
75-
}
76-
},
77-
""required"": true
78-
}";
70+
var writer = new OpenApiJsonWriter(outputStringWriter, new OpenApiJsonWriterSettings { Terse = produceTerseOutput });
7971

8072
// Act
8173
AdvancedRequestBody.SerializeAsV3(writer);
8274
writer.Flush();
8375
var actual = outputStringWriter.GetStringBuilder().ToString();
8476

8577
// Assert
86-
actual = actual.MakeLineBreaksEnvironmentNeutral();
87-
expected = expected.MakeLineBreaksEnvironmentNeutral();
88-
actual.Should().Be(expected);
78+
await Verifier.Verify(actual).UseParameters(produceTerseOutput);
8979
}
9080

91-
[Fact]
92-
public void SerializeReferencedRequestBodyAsV3JsonWorks()
81+
[Theory]
82+
[InlineData(true)]
83+
[InlineData(false)]
84+
public async Task SerializeReferencedRequestBodyAsV3JsonWorksAsync(bool produceTerseOutput)
9385
{
9486
// Arrange
9587
var outputStringWriter = new StringWriter(CultureInfo.InvariantCulture);
96-
var writer = new OpenApiJsonWriter(outputStringWriter);
97-
var expected =
98-
@"{
99-
""$ref"": ""#/components/requestBodies/example1""
100-
}";
88+
var writer = new OpenApiJsonWriter(outputStringWriter, new OpenApiJsonWriterSettings { Terse = produceTerseOutput });
10189

10290
// Act
10391
ReferencedRequestBody.SerializeAsV3(writer);
10492
writer.Flush();
10593
var actual = outputStringWriter.GetStringBuilder().ToString();
10694

10795
// Assert
108-
actual = actual.MakeLineBreaksEnvironmentNeutral();
109-
expected = expected.MakeLineBreaksEnvironmentNeutral();
110-
actual.Should().Be(expected);
96+
await Verifier.Verify(actual).UseParameters(produceTerseOutput);
11197
}
11298

113-
[Fact]
114-
public void SerializeReferencedRequestBodyAsV3JsonWithoutReferenceWorks()
99+
[Theory]
100+
[InlineData(true)]
101+
[InlineData(false)]
102+
public async Task SerializeReferencedRequestBodyAsV3JsonWithoutReferenceWorksAsync(bool produceTerseOutput)
115103
{
116104
// Arrange
117105
var outputStringWriter = new StringWriter(CultureInfo.InvariantCulture);
118-
var writer = new OpenApiJsonWriter(outputStringWriter);
119-
var expected =
120-
@"{
121-
""description"": ""description"",
122-
""content"": {
123-
""application/json"": {
124-
""schema"": {
125-
""type"": ""string""
126-
}
127-
}
128-
},
129-
""required"": true
130-
}";
106+
var writer = new OpenApiJsonWriter(outputStringWriter, new OpenApiJsonWriterSettings { Terse = produceTerseOutput });
131107

132108
// Act
133109
ReferencedRequestBody.SerializeAsV3WithoutReference(writer);
134110
writer.Flush();
135111
var actual = outputStringWriter.GetStringBuilder().ToString();
136112

137113
// Assert
138-
actual = actual.MakeLineBreaksEnvironmentNeutral();
139-
expected = expected.MakeLineBreaksEnvironmentNeutral();
140-
actual.Should().Be(expected);
114+
await Verifier.Verify(actual).UseParameters(produceTerseOutput);
141115
}
142116
}
143117
}

0 commit comments

Comments
 (0)