|
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