Skip to content

Commit 0589aa2

Browse files
committed
Update tests
1 parent 9e33b33 commit 0589aa2

File tree

4 files changed

+285
-8
lines changed

4 files changed

+285
-8
lines changed

src/OpenApi/sample/Endpoints/MapSchemasEndpoints.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,19 @@ public static IEndpointRouteBuilder MapSchemasEndpoints(this IEndpointRouteBuild
5454
NullableProperty = null,
5555
NullableComplexProperty = null
5656
}));
57+
schemas.MapGet("/nullable-return-type", NullableResponseModel? () => new NullableResponseModel
58+
{
59+
RequiredProperty = "required",
60+
NullableProperty = null,
61+
NullableComplexProperty = null
62+
});
5763
schemas.MapPost("/nullable-request", (NullableRequestModel? request) => Results.Ok(request));
5864
schemas.MapPost("/complex-nullable-hierarchy", (ComplexHierarchyModel model) => Results.Ok(model));
5965

6066
// Additional edge cases for nullable testing
6167
schemas.MapPost("/nullable-array-elements", (NullableArrayModel model) => Results.Ok(model));
62-
schemas.MapGet("/optional-with-default", () => Results.Ok(new ModelWithDefaults()));
63-
schemas.MapGet("/nullable-enum-response", () => Results.Ok(new EnumNullableModel
68+
schemas.MapGet("/optional-with-default", () => TypedResults.Ok(new ModelWithDefaults()));
69+
schemas.MapGet("/nullable-enum-response", () => TypedResults.Ok(new EnumNullableModel
6470
{
6571
RequiredEnum = TestEnum.Value1,
6672
NullableEnum = null

src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/snapshots/OpenApi3_0/OpenApiDocumentIntegrationTests.VerifyOpenApiDocument_documentName=schemas-by-ref.verified.txt

Lines changed: 91 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -656,6 +656,32 @@
656656
}
657657
}
658658
},
659+
"/schemas-by-ref/nullable-return-type": {
660+
"get": {
661+
"tags": [
662+
"Sample"
663+
],
664+
"responses": {
665+
"200": {
666+
"description": "OK",
667+
"content": {
668+
"application/json": {
669+
"schema": {
670+
"oneOf": [
671+
{
672+
"nullable": true
673+
},
674+
{
675+
"$ref": "#/components/schemas/NullableResponseModel"
676+
}
677+
]
678+
}
679+
}
680+
}
681+
}
682+
}
683+
}
684+
},
659685
"/schemas-by-ref/nullable-request": {
660686
"post": {
661687
"tags": [
@@ -735,7 +761,14 @@
735761
],
736762
"responses": {
737763
"200": {
738-
"description": "OK"
764+
"description": "OK",
765+
"content": {
766+
"application/json": {
767+
"schema": {
768+
"$ref": "#/components/schemas/ModelWithDefaults"
769+
}
770+
}
771+
}
739772
}
740773
}
741774
}
@@ -747,7 +780,14 @@
747780
],
748781
"responses": {
749782
"200": {
750-
"description": "OK"
783+
"description": "OK",
784+
"content": {
785+
"application/json": {
786+
"schema": {
787+
"$ref": "#/components/schemas/EnumNullableModel"
788+
}
789+
}
790+
}
751791
}
752792
}
753793
}
@@ -948,6 +988,33 @@
948988
}
949989
}
950990
},
991+
"EnumNullableModel": {
992+
"required": [
993+
"requiredEnum"
994+
],
995+
"type": "object",
996+
"properties": {
997+
"requiredEnum": {
998+
"$ref": "#/components/schemas/TestEnum"
999+
},
1000+
"nullableEnum": {
1001+
"oneOf": [
1002+
{
1003+
"nullable": true
1004+
},
1005+
{
1006+
"$ref": "#/components/schemas/TestEnum"
1007+
}
1008+
]
1009+
},
1010+
"listOfNullableEnums": {
1011+
"type": "array",
1012+
"items": {
1013+
"$ref": "#/components/schemas/TestEnum"
1014+
}
1015+
}
1016+
}
1017+
},
9511018
"Item": {
9521019
"type": "object",
9531020
"properties": {
@@ -1059,6 +1126,25 @@
10591126
}
10601127
}
10611128
},
1129+
"ModelWithDefaults": {
1130+
"type": "object",
1131+
"properties": {
1132+
"propertyWithDefault": {
1133+
"type": "string"
1134+
},
1135+
"nullableWithNull": {
1136+
"type": "string",
1137+
"nullable": true
1138+
},
1139+
"numberWithDefault": {
1140+
"type": "integer",
1141+
"format": "int32"
1142+
},
1143+
"boolWithDefault": {
1144+
"type": "boolean"
1145+
}
1146+
}
1147+
},
10621148
"NestedModel": {
10631149
"required": [
10641150
"name"
@@ -1411,6 +1497,9 @@
14111497
}
14121498
}
14131499
},
1500+
"TestEnum": {
1501+
"type": "integer"
1502+
},
14141503
"Triangle": {
14151504
"type": "object",
14161505
"properties": {

src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Integration/snapshots/OpenApi3_1/OpenApiDocumentIntegrationTests.VerifyOpenApiDocument_documentName=schemas-by-ref.verified.txt

Lines changed: 93 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -656,6 +656,32 @@
656656
}
657657
}
658658
},
659+
"/schemas-by-ref/nullable-return-type": {
660+
"get": {
661+
"tags": [
662+
"Sample"
663+
],
664+
"responses": {
665+
"200": {
666+
"description": "OK",
667+
"content": {
668+
"application/json": {
669+
"schema": {
670+
"oneOf": [
671+
{
672+
"type": "null"
673+
},
674+
{
675+
"$ref": "#/components/schemas/NullableResponseModel"
676+
}
677+
]
678+
}
679+
}
680+
}
681+
}
682+
}
683+
}
684+
},
659685
"/schemas-by-ref/nullable-request": {
660686
"post": {
661687
"tags": [
@@ -735,7 +761,14 @@
735761
],
736762
"responses": {
737763
"200": {
738-
"description": "OK"
764+
"description": "OK",
765+
"content": {
766+
"application/json": {
767+
"schema": {
768+
"$ref": "#/components/schemas/ModelWithDefaults"
769+
}
770+
}
771+
}
739772
}
740773
}
741774
}
@@ -747,7 +780,14 @@
747780
],
748781
"responses": {
749782
"200": {
750-
"description": "OK"
783+
"description": "OK",
784+
"content": {
785+
"application/json": {
786+
"schema": {
787+
"$ref": "#/components/schemas/EnumNullableModel"
788+
}
789+
}
790+
}
751791
}
752792
}
753793
}
@@ -964,6 +1004,33 @@
9641004
}
9651005
}
9661006
},
1007+
"EnumNullableModel": {
1008+
"required": [
1009+
"requiredEnum"
1010+
],
1011+
"type": "object",
1012+
"properties": {
1013+
"requiredEnum": {
1014+
"$ref": "#/components/schemas/TestEnum"
1015+
},
1016+
"nullableEnum": {
1017+
"oneOf": [
1018+
{
1019+
"type": "null"
1020+
},
1021+
{
1022+
"$ref": "#/components/schemas/TestEnum"
1023+
}
1024+
]
1025+
},
1026+
"listOfNullableEnums": {
1027+
"type": "array",
1028+
"items": {
1029+
"$ref": "#/components/schemas/TestEnum"
1030+
}
1031+
}
1032+
}
1033+
},
9671034
"Item": {
9681035
"type": "object",
9691036
"properties": {
@@ -1075,6 +1142,27 @@
10751142
}
10761143
}
10771144
},
1145+
"ModelWithDefaults": {
1146+
"type": "object",
1147+
"properties": {
1148+
"propertyWithDefault": {
1149+
"type": "string"
1150+
},
1151+
"nullableWithNull": {
1152+
"type": [
1153+
"null",
1154+
"string"
1155+
]
1156+
},
1157+
"numberWithDefault": {
1158+
"type": "integer",
1159+
"format": "int32"
1160+
},
1161+
"boolWithDefault": {
1162+
"type": "boolean"
1163+
}
1164+
}
1165+
},
10781166
"NestedModel": {
10791167
"required": [
10801168
"name"
@@ -1441,6 +1529,9 @@
14411529
}
14421530
}
14431531
},
1532+
"TestEnum": {
1533+
"type": "integer"
1534+
},
14441535
"Triangle": {
14451536
"type": "object",
14461537
"properties": {

0 commit comments

Comments
 (0)