Skip to content

Commit f72ef89

Browse files
committed
Add test to validate
1 parent a0d1f23 commit f72ef89

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@
77
using System.Globalization;
88
using System.IO;
99
using System.Linq;
10+
using System.Text;
11+
using System.Text.Json;
1012
using FluentAssertions;
13+
using Microsoft.OpenApi.Any;
14+
using Microsoft.OpenApi.Models;
1115
using Microsoft.OpenApi.Writers;
1216
using Newtonsoft.Json;
1317
using Xunit;
@@ -265,5 +269,29 @@ public void WriteDateTimeAsJsonShouldMatchExpected(DateTimeOffset dateTimeOffset
265269
// Assert
266270
writtenString.Should().Be(expectedString);
267271
}
272+
273+
[Fact]
274+
public void OpenApiJsonWriterOutputsValidJsonValueWhenSchemaHasNanOrInfinityValues()
275+
{
276+
// Arrange
277+
var schema = new OpenApiSchema
278+
{
279+
Enum = new List<IOpenApiAny> {
280+
new OpenApiDouble(double.NaN),
281+
new OpenApiDouble(double.PositiveInfinity),
282+
new OpenApiDouble(double.NegativeInfinity)
283+
}
284+
};
285+
286+
// Act
287+
var schemaBuilder = new StringBuilder();
288+
var jsonWriter = new OpenApiJsonWriter(new StringWriter(schemaBuilder));
289+
schema.SerializeAsV3(jsonWriter);
290+
var jsonString = schemaBuilder.ToString();
291+
292+
// Assert
293+
var exception = Record.Exception(() => System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, object>>(jsonString));
294+
Assert.Null(exception);
295+
}
268296
}
269297
}

0 commit comments

Comments
 (0)