|
1 | 1 | using System; |
2 | 2 | using System.Collections.Generic; |
| 3 | +using System.Linq; |
3 | 4 | using System.Net; |
4 | 5 | using System.Net.Http; |
5 | 6 | using System.Net.Http.Json; |
@@ -452,5 +453,48 @@ public void ApiCall_PostQueryData_OKResponse() |
452 | 453 | Assert.NotNull(actual.Data); |
453 | 454 | Assert.AreEqual(actual.Data.Message, expected.Message); |
454 | 455 | } |
| 456 | + |
| 457 | + [Test] |
| 458 | + public void ApiCall_PostNullHeaderValue_OKResponse() |
| 459 | + { |
| 460 | + //Arrange |
| 461 | + var text = "Post null header value."; |
| 462 | + var url = "/apicall/null-header-post/200"; |
| 463 | + var headerKey = "null-key"; |
| 464 | + |
| 465 | + var expected = new ServerResponse() |
| 466 | + { |
| 467 | + Message = text, |
| 468 | + Passed = true, |
| 469 | + }; |
| 470 | + |
| 471 | + var content = JsonContent.Create(expected); |
| 472 | + handlerMock.When(GetCompleteUrl(url)) |
| 473 | + .With(req => |
| 474 | + { |
| 475 | + Assert.AreEqual(text, req.Content.ReadAsStringAsync().Result); |
| 476 | + Assert.IsTrue(req.Headers.Contains(headerKey)); |
| 477 | + Assert.AreEqual(string.Empty, req.Headers.GetValues(headerKey).FirstOrDefault()); |
| 478 | + return true; |
| 479 | + }) |
| 480 | + .Respond(HttpStatusCode.OK, content); |
| 481 | + |
| 482 | + var apiCall = CreateApiCall<ServerResponse>() |
| 483 | + .RequestBuilder(requestBuilderAction => requestBuilderAction |
| 484 | + .Setup(HttpMethod.Post, url) |
| 485 | + .Parameters(p => p |
| 486 | + .Body(b => b.Setup(text)) |
| 487 | + .Header(h => h.Setup(headerKey, null)))) |
| 488 | + .ExecuteAsync(); |
| 489 | + |
| 490 | + // Act |
| 491 | + var actual = CoreHelper.RunTask(apiCall); |
| 492 | + |
| 493 | + // Assert |
| 494 | + Assert.NotNull(actual); |
| 495 | + Assert.AreEqual(actual.StatusCode, (int)HttpStatusCode.OK); |
| 496 | + Assert.NotNull(actual.Data); |
| 497 | + Assert.AreEqual(actual.Data.Message, expected.Message); |
| 498 | + } |
455 | 499 | } |
456 | 500 | } |
0 commit comments