@@ -2316,6 +2316,7 @@ public void ValidationProblemDetails_Works()
2316
2316
// Assert
2317
2317
var badRequestResult = Assert . IsType < BadRequestObjectResult > ( actionResult ) ;
2318
2318
var problemDetails = Assert . IsType < ValidationProblemDetails > ( badRequestResult . Value ) ;
2319
+ Assert . Equal ( 400 , badRequestResult . StatusCode ) ;
2319
2320
Assert . Equal ( 400 , problemDetails . Status ) ;
2320
2321
Assert . Equal ( "One or more validation errors occurred." , problemDetails . Title ) ;
2321
2322
Assert . Equal ( "https://tools.ietf.org/html/rfc7231#section-6.5.1" , problemDetails . Type ) ;
@@ -2348,6 +2349,48 @@ public void ValidationProblemDetails_UsesSpecifiedTitle()
2348
2349
Assert . Equal ( detail , problemDetails . Detail ) ;
2349
2350
}
2350
2351
2352
+ [ Fact ]
2353
+ public void ValidationProblemDetails_UsesSpecifiedStatusCode ( )
2354
+ {
2355
+ // Arrange
2356
+ var options = GetApiBehaviorOptions ( ) ;
2357
+
2358
+ var controller = new TestableController
2359
+ {
2360
+ ProblemDetailsFactory = new DefaultProblemDetailsFactory ( Options . Create ( options ) ) ,
2361
+ } ;
2362
+
2363
+ // Act
2364
+ var actionResult = controller . ValidationProblem ( statusCode : 405 ) ;
2365
+
2366
+ // Assert
2367
+ var objectResult = Assert . IsType < ObjectResult > ( actionResult ) ;
2368
+ var problemDetails = Assert . IsType < ValidationProblemDetails > ( objectResult . Value ) ;
2369
+ Assert . Equal ( 405 , objectResult . StatusCode ) ;
2370
+ Assert . Equal ( 405 , problemDetails . Status ) ;
2371
+ }
2372
+
2373
+ [ Fact ]
2374
+ public void ValidationProblemDetails_StatusCode400_ReturnsBadRequestObjectResultFor2xCompatibility ( )
2375
+ {
2376
+ // Arrange
2377
+ var options = GetApiBehaviorOptions ( ) ;
2378
+
2379
+ var controller = new TestableController
2380
+ {
2381
+ ProblemDetailsFactory = new DefaultProblemDetailsFactory ( Options . Create ( options ) ) ,
2382
+ } ;
2383
+
2384
+ // Act
2385
+ var actionResult = controller . ValidationProblem ( statusCode : 400 ) ;
2386
+
2387
+ // Assert
2388
+ var badRequestResult = Assert . IsType < BadRequestObjectResult > ( actionResult ) ;
2389
+ var problemDetails = Assert . IsType < ValidationProblemDetails > ( badRequestResult . Value ) ;
2390
+ Assert . Equal ( 400 , badRequestResult . StatusCode ) ;
2391
+ Assert . Equal ( 400 , problemDetails . Status ) ;
2392
+ }
2393
+
2351
2394
[ Fact ]
2352
2395
public void ProblemDetails_Works ( )
2353
2396
{
@@ -2371,6 +2414,7 @@ public void ProblemDetails_Works()
2371
2414
// Assert
2372
2415
var badRequestResult = Assert . IsType < ObjectResult > ( actionResult ) ;
2373
2416
var problemDetails = Assert . IsType < ProblemDetails > ( badRequestResult . Value ) ;
2417
+ Assert . Equal ( 500 , actionResult . StatusCode ) ;
2374
2418
Assert . Equal ( 500 , problemDetails . Status ) ;
2375
2419
Assert . Equal ( "An error occured while processing your request." , problemDetails . Title ) ;
2376
2420
Assert . Equal ( "https://tools.ietf.org/html/rfc7231#section-6.6.1" , problemDetails . Type ) ;
@@ -2396,6 +2440,7 @@ public void ProblemDetails_UsesPassedInValues()
2396
2440
// Assert
2397
2441
var badRequestResult = Assert . IsType < ObjectResult > ( actionResult ) ;
2398
2442
var problemDetails = Assert . IsType < ProblemDetails > ( badRequestResult . Value ) ;
2443
+ Assert . Equal ( 500 , actionResult . StatusCode ) ;
2399
2444
Assert . Equal ( 500 , problemDetails . Status ) ;
2400
2445
Assert . Equal ( title , problemDetails . Title ) ;
2401
2446
Assert . Equal ( "https://tools.ietf.org/html/rfc7231#section-6.6.1" , problemDetails . Type ) ;
@@ -2419,6 +2464,7 @@ public void ProblemDetails_UsesPassedInStatusCode()
2419
2464
// Assert
2420
2465
var badRequestResult = Assert . IsType < ObjectResult > ( actionResult ) ;
2421
2466
var problemDetails = Assert . IsType < ProblemDetails > ( badRequestResult . Value ) ;
2467
+ Assert . Equal ( 422 , actionResult . StatusCode ) ;
2422
2468
Assert . Equal ( 422 , problemDetails . Status ) ;
2423
2469
Assert . Equal ( "Unprocessable entity." , problemDetails . Title ) ;
2424
2470
Assert . Equal ( "https://tools.ietf.org/html/rfc4918#section-11.2" , problemDetails . Type ) ;
0 commit comments