File tree 2 files changed +31
-1
lines changed
src/Microsoft.OpenApi/Models
test/Microsoft.OpenApi.Tests/Models
2 files changed +31
-1
lines changed Original file line number Diff line number Diff line change @@ -413,7 +413,7 @@ internal void WriteJsonSchemaKeywords(IOpenApiWriter writer)
413
413
internal void WriteAsItemsProperties ( IOpenApiWriter writer )
414
414
{
415
415
// type
416
- writer . WriteProperty ( OpenApiConstants . Type , Type . ToIdentifier ( ) ) ;
416
+ writer . WriteProperty ( OpenApiConstants . Type , ( Type & ~ JsonSchemaType . Null ) . ToIdentifier ( ) ) ;
417
417
418
418
// format
419
419
WriteFormatProperty ( writer ) ;
Original file line number Diff line number Diff line change @@ -624,6 +624,36 @@ public async Task SerializeSchemaWithUnrecognizedPropertiesWorks()
624
624
Assert . Equal ( expected . MakeLineBreaksEnvironmentNeutral ( ) , actual . MakeLineBreaksEnvironmentNeutral ( ) ) ;
625
625
}
626
626
627
+ [ Fact ]
628
+ public async Task WriteAsItemsPropertiesDoesNotWriteNull ( )
629
+ {
630
+ // Arrange
631
+ var schema = new OpenApiSchema
632
+ {
633
+ Type = JsonSchemaType . Number | JsonSchemaType . Null
634
+ } ;
635
+
636
+ var outputStringWriter = new StringWriter ( CultureInfo . InvariantCulture ) ;
637
+ var writer = new OpenApiJsonWriter ( outputStringWriter , new ( ) { Terse = false } ) ;
638
+ writer . WriteStartObject ( ) ;
639
+
640
+ // Act
641
+ schema . WriteAsItemsProperties ( writer ) ;
642
+ writer . WriteEndObject ( ) ;
643
+ await writer . FlushAsync ( ) ;
644
+
645
+ // Assert
646
+ var actual = outputStringWriter . GetStringBuilder ( ) . ToString ( ) ;
647
+ var expected =
648
+ """
649
+ {
650
+ "type": "number"
651
+ }
652
+ """ ;
653
+ Assert . True ( JsonNode . DeepEquals ( JsonNode . Parse ( expected ) , JsonNode . Parse ( actual ) ) ) ;
654
+ }
655
+
656
+
627
657
internal class SchemaVisitor : OpenApiVisitorBase
628
658
{
629
659
public List < string > Titles = new ( ) ;
You can’t perform that action at this time.
0 commit comments