|
3 | 3 |
|
4 | 4 | using System.Globalization;
|
5 | 5 | using System.IO;
|
6 |
| -using FluentAssertions; |
| 6 | +using System.Threading.Tasks; |
7 | 7 | using Microsoft.OpenApi.Models;
|
8 | 8 | using Microsoft.OpenApi.Writers;
|
| 9 | +using VerifyXunit; |
9 | 10 | using Xunit;
|
10 | 11 | using Xunit.Abstractions;
|
11 | 12 |
|
12 | 13 | namespace Microsoft.OpenApi.Tests.Models
|
13 | 14 | {
|
14 | 15 | [Collection("DefaultSettings")]
|
| 16 | + [UsesVerify] |
15 | 17 | public class OpenApiRequestBodyTests
|
16 | 18 | {
|
17 | 19 | public static OpenApiRequestBody AdvancedRequestBody = new OpenApiRequestBody
|
@@ -58,86 +60,58 @@ public OpenApiRequestBodyTests(ITestOutputHelper output)
|
58 | 60 | _output = output;
|
59 | 61 | }
|
60 | 62 |
|
61 |
| - [Fact] |
62 |
| - public void SerializeAdvancedRequestBodyAsV3JsonWorks() |
| 63 | + [Theory] |
| 64 | + [InlineData(true)] |
| 65 | + [InlineData(false)] |
| 66 | + public async Task SerializeAdvancedRequestBodyAsV3JsonWorksAsync(bool produceTerseOutput) |
63 | 67 | {
|
64 | 68 | // Arrange
|
65 | 69 | 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 }); |
79 | 71 |
|
80 | 72 | // Act
|
81 | 73 | AdvancedRequestBody.SerializeAsV3(writer);
|
82 | 74 | writer.Flush();
|
83 | 75 | var actual = outputStringWriter.GetStringBuilder().ToString();
|
84 | 76 |
|
85 | 77 | // Assert
|
86 |
| - actual = actual.MakeLineBreaksEnvironmentNeutral(); |
87 |
| - expected = expected.MakeLineBreaksEnvironmentNeutral(); |
88 |
| - actual.Should().Be(expected); |
| 78 | + await Verifier.Verify(actual).UseParameters(produceTerseOutput); |
89 | 79 | }
|
90 | 80 |
|
91 |
| - [Fact] |
92 |
| - public void SerializeReferencedRequestBodyAsV3JsonWorks() |
| 81 | + [Theory] |
| 82 | + [InlineData(true)] |
| 83 | + [InlineData(false)] |
| 84 | + public async Task SerializeReferencedRequestBodyAsV3JsonWorksAsync(bool produceTerseOutput) |
93 | 85 | {
|
94 | 86 | // Arrange
|
95 | 87 | 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 }); |
101 | 89 |
|
102 | 90 | // Act
|
103 | 91 | ReferencedRequestBody.SerializeAsV3(writer);
|
104 | 92 | writer.Flush();
|
105 | 93 | var actual = outputStringWriter.GetStringBuilder().ToString();
|
106 | 94 |
|
107 | 95 | // Assert
|
108 |
| - actual = actual.MakeLineBreaksEnvironmentNeutral(); |
109 |
| - expected = expected.MakeLineBreaksEnvironmentNeutral(); |
110 |
| - actual.Should().Be(expected); |
| 96 | + await Verifier.Verify(actual).UseParameters(produceTerseOutput); |
111 | 97 | }
|
112 | 98 |
|
113 |
| - [Fact] |
114 |
| - public void SerializeReferencedRequestBodyAsV3JsonWithoutReferenceWorks() |
| 99 | + [Theory] |
| 100 | + [InlineData(true)] |
| 101 | + [InlineData(false)] |
| 102 | + public async Task SerializeReferencedRequestBodyAsV3JsonWithoutReferenceWorksAsync(bool produceTerseOutput) |
115 | 103 | {
|
116 | 104 | // Arrange
|
117 | 105 | 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 }); |
131 | 107 |
|
132 | 108 | // Act
|
133 | 109 | ReferencedRequestBody.SerializeAsV3WithoutReference(writer);
|
134 | 110 | writer.Flush();
|
135 | 111 | var actual = outputStringWriter.GetStringBuilder().ToString();
|
136 | 112 |
|
137 | 113 | // Assert
|
138 |
| - actual = actual.MakeLineBreaksEnvironmentNeutral(); |
139 |
| - expected = expected.MakeLineBreaksEnvironmentNeutral(); |
140 |
| - actual.Should().Be(expected); |
| 114 | + await Verifier.Verify(actual).UseParameters(produceTerseOutput); |
141 | 115 | }
|
142 | 116 | }
|
143 | 117 | }
|
0 commit comments