Skip to content

Commit dbd3f0f

Browse files
committed
Make methods in IRoutingResponseBuilder chainable
1 parent 8285c80 commit dbd3f0f

5 files changed

Lines changed: 16 additions & 6 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
2525
This change also makes it possible to assert the content on .NET Framework.
2626
- The methods `WithRequestHeader` and `WithContentHeader` now work the same as `WithHeader`, this might lead to slight changes in the behavior since now the headers from both the request and the content of that request are checked.
2727
- Moved `WithHttpMethod`, `WithRequestUri`, `WithHttpVersion`, `WithHeader` and `WithContent` from `HttpRequestMessagesCheckExtensions` to `HttpRequestMessageAsserter` and specify them on the `IHttpRequestMessagesCheck` interface.
28+
- The methods `Map` and `MapFallBackResponse` on `IRoutingResponseBuilder` now return an `IRoutingResponseBuider` making it possible to chain calls.
2829

2930
## [0.11] - 2024-06-15
3031
### Removed

src/TestableHttpClient/IRoutingResponseBuilder.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ public interface IRoutingResponseBuilder
1111
/// <param name="route">The route pattern.</param>
1212
/// <param name="response">The response the route should return.</param>
1313
/// <example>x.Map("*", Responses.StatusCode(HttpStatusCode.OK))</example>
14-
public void Map(string route, IResponse response);
14+
public IRoutingResponseBuilder Map(string route, IResponse response);
1515
/// <summary>
1616
/// Maps a custom response for when a request didn't match any route. Defaults to Responses.StatusCode(HttpStatusCode.NotFound).
1717
/// </summary>
1818
/// <param name="fallBackResponse">The response that should be returned when no route matches.</param>
19-
public void MapFallBackResponse(IResponse fallBackResponse);
19+
public IRoutingResponseBuilder MapFallBackResponse(IResponse fallBackResponse);
2020
}

src/TestableHttpClient/PublicAPI.Shipped.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ TestableHttpClient.UriPatternMatchingOptions.SchemeCaseInsensitive.set -> void
2626
TestableHttpClient.UriPatternMatchingOptions.UriPatternMatchingOptions() -> void
2727

2828
TestableHttpClient.IRoutingResponseBuilder
29-
TestableHttpClient.IRoutingResponseBuilder.Map(string! route, TestableHttpClient.IResponse! response) -> void
30-
TestableHttpClient.IRoutingResponseBuilder.MapFallBackResponse(TestableHttpClient.IResponse! fallBackResponse) -> void
3129

3230
TestableHttpClient.IResponse
3331
TestableHttpClient.IResponse.ExecuteAsync(TestableHttpClient.HttpResponseContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!

src/TestableHttpClient/PublicAPI.Unshipped.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ TestableHttpClient.IHttpRequestMessagesCheck.WithHttpVersion(System.Version! htt
1717
TestableHttpClient.IHttpRequestMessagesCheck.WithHttpVersion(System.Version! httpVersion, int expectedNumberOfRequests) -> TestableHttpClient.IHttpRequestMessagesCheck!
1818
TestableHttpClient.IHttpRequestMessagesCheck.WithRequestUri(string! pattern) -> TestableHttpClient.IHttpRequestMessagesCheck!
1919
TestableHttpClient.IHttpRequestMessagesCheck.WithRequestUri(string! pattern, int expectedNumberOfRequests) -> TestableHttpClient.IHttpRequestMessagesCheck!
20+
TestableHttpClient.IRoutingResponseBuilder.Map(string! route, TestableHttpClient.IResponse! response) -> TestableHttpClient.IRoutingResponseBuilder!
21+
TestableHttpClient.IRoutingResponseBuilder.MapFallBackResponse(TestableHttpClient.IResponse! fallBackResponse) -> TestableHttpClient.IRoutingResponseBuilder!
2022
TestableHttpClient.RequestBuilder
2123
TestableHttpClient.RequestBuilder.WithContent(string! pattern) -> TestableHttpClient.RequestBuilder!
2224
TestableHttpClient.RequestBuilder.WithHeader(string! headerName) -> TestableHttpClient.RequestBuilder!

src/TestableHttpClient/Utils/RoutingResponseBuilder.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,15 @@ internal sealed class RoutingResponseBuilder : IRoutingResponseBuilder
66
{
77
public RoutingResponse RoutingResponse { get; } = new();
88

9-
public void MapFallBackResponse(IResponse fallBackResponse) => RoutingResponse.FallBackResponse = fallBackResponse;
10-
public void Map(string route, IResponse response) => RoutingResponse.ResponseMap.Add(UriPatternParser.Parse(route), response);
9+
public IRoutingResponseBuilder MapFallBackResponse(IResponse fallBackResponse)
10+
{
11+
RoutingResponse.FallBackResponse = fallBackResponse;
12+
return this;
13+
}
14+
15+
public IRoutingResponseBuilder Map(string route, IResponse response)
16+
{
17+
RoutingResponse.ResponseMap.Add(UriPatternParser.Parse(route), response);
18+
return this;
19+
}
1120
}

0 commit comments

Comments
 (0)