Skip to content

Commit 14e4980

Browse files
irvinesundaybaywet
authored andcommitted
Adds nullable to double schema conversions (#589)
* Update double schema * Update integration file tests * Update release notes
1 parent bbce0a8 commit 14e4980

19 files changed

+55
-19
lines changed

src/Microsoft.OpenApi.OData.Reader/Generator/OpenApiEdmTypeSchemaGenerator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,8 +195,8 @@ public static OpenApiSchema CreateSchema(this ODataContext context, IEdmPrimitiv
195195
case EdmPrimitiveTypeKind.Double: // double
196196
schema.OneOf = new List<OpenApiSchema>
197197
{
198-
new OpenApiSchema { Type = Constants.NumberType, Format = "double" },
199-
new OpenApiSchema { Type = Constants.StringType },
198+
new OpenApiSchema { Type = Constants.NumberType, Format = "double", Nullable = true },
199+
new OpenApiSchema { Type = Constants.StringType, Nullable = true },
200200
new OpenApiSchema
201201
{
202202
UnresolvedReference = true,

src/Microsoft.OpenApi.OData.Reader/Generator/OpenApiSchemaGenerator.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,14 @@ public static IDictionary<string, OpenApiSchema> CreateSchemas(this ODataContext
121121

122122
schemas[Constants.ReferenceNumericName] = new()
123123
{
124-
Enum = new List<IOpenApiAny>
125-
{
124+
Type = Constants.StringType,
125+
Nullable = true,
126+
Enum =
127+
[
126128
new OpenApiString("-INF"),
127129
new OpenApiString("INF"),
128130
new OpenApiString("NaN")
129-
}
131+
]
130132
};
131133

132134
if (context.Settings.EnableODataAnnotationReferencesForResponses)

test/Microsoft.OpenAPI.OData.Reader.Tests/Generator/OpenApiSchemaGeneratorTests.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1105,10 +1105,12 @@ public void NonNullableDoublePropertyWithDefaultStringWorks()
11051105
""oneOf"": [
11061106
{
11071107
""type"": ""number"",
1108-
""format"": ""double""
1108+
""format"": ""double"",
1109+
""nullable"": true
11091110
},
11101111
{
1111-
""type"": ""string""
1112+
""type"": ""string"",
1113+
""nullable"": true
11121114
},
11131115
{
11141116
""$ref"": ""#/components/schemas/ReferenceNumeric""

test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Basic.OpenApi.V2.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1152,7 +1152,8 @@
11521152
"-INF",
11531153
"INF",
11541154
"NaN"
1155-
]
1155+
],
1156+
"type": "string"
11561157
}
11571158
},
11581159
"parameters": {

test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Basic.OpenApi.V2.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -757,6 +757,7 @@ definitions:
757757
- '-INF'
758758
- INF
759759
- NaN
760+
type: string
760761
parameters:
761762
top:
762763
in: query

test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Basic.OpenApi.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1258,7 +1258,9 @@
12581258
"-INF",
12591259
"INF",
12601260
"NaN"
1261-
]
1261+
],
1262+
"type": "string",
1263+
"nullable": true
12621264
}
12631265
},
12641266
"responses": {

test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Basic.OpenApi.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -829,6 +829,8 @@ components:
829829
- '-INF'
830830
- INF
831831
- NaN
832+
type: string
833+
nullable: true
832834
responses:
833835
error:
834836
description: error

test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Empty.OpenApi.V2.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@
103103
"-INF",
104104
"INF",
105105
"NaN"
106-
]
106+
],
107+
"type": "string"
107108
}
108109
},
109110
"parameters": {

test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Empty.OpenApi.V2.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ definitions:
7171
- '-INF'
7272
- INF
7373
- NaN
74+
type: string
7475
parameters:
7576
top:
7677
in: query

test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Empty.OpenApi.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,9 @@
108108
"-INF",
109109
"INF",
110110
"NaN"
111-
]
111+
],
112+
"type": "string",
113+
"nullable": true
112114
}
113115
},
114116
"responses": {

0 commit comments

Comments
 (0)