Skip to content

Commit 2ee2f9a

Browse files
committed
added fix and test for null StatusDescription in HttpResult when constructing HttpResponse- null StatusDescription throws ArgumentNullException when set in System.Net.HttpListenerResponse
1 parent 0d30101 commit 2ee2f9a

3 files changed

Lines changed: 25 additions & 2 deletions

File tree

src/ServiceStack/WebHost.EndPoints/Extensions/IHttpResponseExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public static bool WriteToResponse(this IHttpResponse response, object result, R
9696
if (httpResult != null)
9797
{
9898
response.StatusCode = (int)httpResult.StatusCode;
99-
response.StatusDescription = httpResult.StatusDescription;
99+
response.StatusDescription = httpResult.StatusDescription ?? httpResult.StatusCode.ToString();
100100
if (string.IsNullOrEmpty(httpResult.ContentType))
101101
{
102102
httpResult.ContentType = defaultContentType;

src/ServiceStack/WebHost.EndPoints/Support/Mocks/HttpResponseMock.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,18 @@ public StringBuilder TextWritten
4040

4141
public int StatusCode { get; set; }
4242

43-
public string StatusDescription { get; set; }
43+
private string statusDescription = string.Empty;
44+
public string StatusDescription
45+
{
46+
get
47+
{
48+
return statusDescription;
49+
}
50+
set
51+
{
52+
statusDescription = value;
53+
}
54+
}
4455

4556
public string ContentType
4657
{

tests/ServiceStack.WebHost.Endpoints.Tests/HttpResultTests.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,18 @@ public void Can_send_ResponseText_test_with_StatusDescription()
8585
Assert.That(statusDesc, Is.EqualTo(customStatus));
8686
}
8787

88+
[Test]
89+
public void Can_handle_null_HttpResult_StatusDescription()
90+
{
91+
var mockResponse = new HttpResponseMock();
92+
93+
var httpResult = new HttpResult();
94+
httpResult.StatusDescription = null;
95+
96+
mockResponse.WriteToResponse(httpResult, ContentType.Html);
97+
98+
Assert.IsNotNull(mockResponse.StatusDescription);
99+
}
88100
}
89101

90102
}

0 commit comments

Comments
 (0)