Skip to content

Commit 83fc148

Browse files
committed
Ensure OpenApiLinkTests cover terse output
1 parent 632d655 commit 83fc148

7 files changed

+53
-51
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"operationId": "operationId1",
3+
"parameters": {
4+
"parameter1": "$request.path.id"
5+
},
6+
"requestBody": {
7+
"property1": true
8+
},
9+
"description": "description1",
10+
"server": {
11+
"description": "serverDescription1"
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"operationId":"operationId1","parameters":{"parameter1":"$request.path.id"},"requestBody":{"property1":true},"description":"description1","server":{"description":"serverDescription1"}}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"operationId": "operationId1",
3+
"parameters": {
4+
"parameter1": "$request.path.id"
5+
},
6+
"requestBody": {
7+
"property1": true
8+
},
9+
"description": "description1",
10+
"server": {
11+
"description": "serverDescription1"
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"operationId":"operationId1","parameters":{"parameter1":"$request.path.id"},"requestBody":{"property1":true},"description":"description1","server":{"description":"serverDescription1"}}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"$ref": "#/components/links/example1"
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"$ref":"#/components/links/example1"}

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

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

44
using System.Globalization;
55
using System.IO;
6-
using FluentAssertions;
6+
using System.Threading.Tasks;
77
using Microsoft.OpenApi.Any;
88
using Microsoft.OpenApi.Expressions;
99
using Microsoft.OpenApi.Models;
1010
using Microsoft.OpenApi.Writers;
11+
using VerifyXunit;
1112
using Xunit;
1213
using Xunit.Abstractions;
1314

1415
namespace Microsoft.OpenApi.Tests.Models
1516
{
1617
[Collection("DefaultSettings")]
18+
[UsesVerify]
1719
public class OpenApiLinkTests
1820
{
1921
public static OpenApiLink AdvancedLink = new OpenApiLink
@@ -76,90 +78,58 @@ public OpenApiLinkTests(ITestOutputHelper output)
7678
_output = output;
7779
}
7880

79-
[Fact]
80-
public void SerializeAdvancedLinkAsV3JsonWorks()
81+
[Theory]
82+
[InlineData(true)]
83+
[InlineData(false)]
84+
public async Task SerializeAdvancedLinkAsV3JsonWorksAsync(bool produceTerseOutput)
8185
{
8286
// Arrange
8387
var outputStringWriter = new StringWriter(CultureInfo.InvariantCulture);
84-
var writer = new OpenApiJsonWriter(outputStringWriter);
85-
var expected =
86-
@"{
87-
""operationId"": ""operationId1"",
88-
""parameters"": {
89-
""parameter1"": ""$request.path.id""
90-
},
91-
""requestBody"": {
92-
""property1"": true
93-
},
94-
""description"": ""description1"",
95-
""server"": {
96-
""description"": ""serverDescription1""
97-
}
98-
}";
88+
var writer = new OpenApiJsonWriter(outputStringWriter, new OpenApiJsonWriterSettings { Terse = produceTerseOutput });
9989

10090
// Act
10191
AdvancedLink.SerializeAsV3(writer);
10292
writer.Flush();
10393
var actual = outputStringWriter.GetStringBuilder().ToString();
10494

10595
// Assert
106-
actual = actual.MakeLineBreaksEnvironmentNeutral();
107-
expected = expected.MakeLineBreaksEnvironmentNeutral();
108-
actual.Should().Be(expected);
96+
await Verifier.Verify(actual).UseParameters(produceTerseOutput);
10997
}
11098

111-
[Fact]
112-
public void SerializeReferencedLinkAsV3JsonWorks()
99+
[Theory]
100+
[InlineData(true)]
101+
[InlineData(false)]
102+
public async Task SerializeReferencedLinkAsV3JsonWorksAsync(bool produceTerseOutput)
113103
{
114104
// Arrange
115105
var outputStringWriter = new StringWriter(CultureInfo.InvariantCulture);
116-
var writer = new OpenApiJsonWriter(outputStringWriter);
117-
var expected =
118-
@"{
119-
""$ref"": ""#/components/links/example1""
120-
}";
106+
var writer = new OpenApiJsonWriter(outputStringWriter, new OpenApiJsonWriterSettings { Terse = produceTerseOutput });
121107

122108
// Act
123109
ReferencedLink.SerializeAsV3(writer);
124110
writer.Flush();
125111
var actual = outputStringWriter.GetStringBuilder().ToString();
126112

127113
// Assert
128-
actual = actual.MakeLineBreaksEnvironmentNeutral();
129-
expected = expected.MakeLineBreaksEnvironmentNeutral();
130-
actual.Should().Be(expected);
114+
await Verifier.Verify(actual).UseParameters(produceTerseOutput);
131115
}
132116

133-
[Fact]
134-
public void SerializeReferencedLinkAsV3JsonWithoutReferenceWorks()
117+
[Theory]
118+
[InlineData(true)]
119+
[InlineData(false)]
120+
public async Task SerializeReferencedLinkAsV3JsonWithoutReferenceWorksAsync(bool produceTerseOutput)
135121
{
136122
// Arrange
137123
var outputStringWriter = new StringWriter(CultureInfo.InvariantCulture);
138-
var writer = new OpenApiJsonWriter(outputStringWriter);
139-
var expected =
140-
@"{
141-
""operationId"": ""operationId1"",
142-
""parameters"": {
143-
""parameter1"": ""$request.path.id""
144-
},
145-
""requestBody"": {
146-
""property1"": true
147-
},
148-
""description"": ""description1"",
149-
""server"": {
150-
""description"": ""serverDescription1""
151-
}
152-
}";
124+
var writer = new OpenApiJsonWriter(outputStringWriter, new OpenApiJsonWriterSettings { Terse = produceTerseOutput });
153125

154126
// Act
155127
ReferencedLink.SerializeAsV3WithoutReference(writer);
156128
writer.Flush();
157129
var actual = outputStringWriter.GetStringBuilder().ToString();
158130

159131
// Assert
160-
actual = actual.MakeLineBreaksEnvironmentNeutral();
161-
expected = expected.MakeLineBreaksEnvironmentNeutral();
162-
actual.Should().Be(expected);
132+
await Verifier.Verify(actual).UseParameters(produceTerseOutput);
163133
}
164134
}
165135
}

0 commit comments

Comments
 (0)