Skip to content
This repository was archived by the owner on Dec 19, 2018. It is now read-only.

Commit de44c3b

Browse files
committed
React to aspnet/HttpAbstractions#160 - Implementing OnResponseCompleted in TestHost
1 parent 3b0d5fd commit de44c3b

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

src/Microsoft.AspNet.TestHost/ClientHandler.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ internal void CompleteResponse()
174174
if (!_responseTcs.Task.IsCompleted)
175175
{
176176
var response = GenerateResponse();
177+
_responseFeature.FireOnResponseCompleted();
177178
// Dispatch, as TrySetResult will synchronously execute the waiters callback and block our Write.
178179
Task.Factory.StartNew(() => _responseTcs.TrySetResult(response));
179180
}

src/Microsoft.AspNet.TestHost/ResponseFeature.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ namespace Microsoft.AspNet.TestHost
1111
internal class ResponseFeature : IHttpResponseFeature
1212
{
1313
private Action _sendingHeaders = () => { };
14+
private Action _responseCompleted = () => { };
1415

1516
public ResponseFeature()
1617
{
@@ -42,10 +43,25 @@ public void OnSendingHeaders(Action<object> callback, object state)
4243
};
4344
}
4445

46+
public void OnResponseCompleted(Action<object> callback, object state)
47+
{
48+
var prior = _responseCompleted;
49+
_responseCompleted = () =>
50+
{
51+
callback(state);
52+
prior();
53+
};
54+
}
55+
4556
public void FireOnSendingHeaders()
4657
{
4758
_sendingHeaders();
4859
HeadersSent = true;
4960
}
61+
62+
public void FireOnResponseCompleted()
63+
{
64+
_responseCompleted();
65+
}
5066
}
5167
}

0 commit comments

Comments
 (0)