diff options
Diffstat (limited to 'src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs')
-rw-r--r-- | src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs b/src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs index 1979cf4..2c1e64b 100644 --- a/src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs +++ b/src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs @@ -125,5 +125,33 @@ namespace DotNetOpenAuth.Test.Mocks { return results.ToArray(); } + + internal static CoordinatorBase.Handler RegisterMockResponse(Uri url, string contentType, string content) { + return CoordinatorBase.Handle(url).By(content, contentType); + } + + internal static CoordinatorBase.Handler RegisterMockResponse(Uri requestUri, Uri responseUri, string contentType, string content) { + return RegisterMockResponse(requestUri, responseUri, contentType, null, content); + } + + internal static CoordinatorBase.Handler RegisterMockResponse(Uri requestUri, Uri responseUri, string contentType, WebHeaderCollection headers, string content) { + return CoordinatorBase.Handle(requestUri).By(req => { + var response = new HttpResponseMessage(); + response.CopyHeadersFrom(headers); + response.Content = new StringContent(content, Encoding.Default, contentType); + return response; + }); + } + + private static void CopyHeadersFrom(this HttpResponseMessage message, WebHeaderCollection headers) { + if (headers != null) { + foreach (string headerName in headers) { + string[] headerValues = headers.GetValues(headerName); + if (!message.Headers.TryAddWithoutValidation(headerName, headerValues)) { + message.Content.Headers.TryAddWithoutValidation(headerName, headerValues); + } + } + } + } } } |