Skip to content

Commit a105c2c

Browse files
authored
Adds nullable to double schema conversions (#589)
* Update double schema * Update integration file tests * Update release notes
1 parent 3366c5c commit a105c2c

20 files changed

+57
-20
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)

src/Microsoft.OpenApi.OData.Reader/Microsoft.OpenAPI.OData.Reader.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<TargetFrameworks>net8.0</TargetFrameworks>
1616
<PackageId>Microsoft.OpenApi.OData</PackageId>
1717
<SignAssembly>true</SignAssembly>
18-
<Version>2.0.0-preview.2</Version>
18+
<Version>2.0.0-preview.3</Version>
1919
<Description>This package contains the codes you need to convert OData CSDL to Open API Document of Model.</Description>
2020
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
2121
<PackageTags>Microsoft OpenApi OData EDM</PackageTags>
@@ -25,6 +25,7 @@
2525
- Cleaned up obsolete APIs
2626
- Changed target framework to net8.0
2727
- Adds support for retrieving collection of enum values from UpdateMethod property of UpdateRestrictions annotation #564
28+
- Adds nullable to double schema conversions #581
2829
</PackageReleaseNotes>
2930
<AssemblyName>Microsoft.OpenApi.OData.Reader</AssemblyName>
3031
<AssemblyOriginatorKeyFile>..\..\tool\Microsoft.OpenApi.OData.snk</AssemblyOriginatorKeyFile>

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

0 commit comments

Comments
 (0)