|
14 | 14 |
|
15 | 15 | ## Example
|
16 | 16 | ```csharp
|
17 |
| -public async Task ShouldGetResponse { |
18 |
| - // Arrange |
19 |
| - var server = new TestServer(); |
20 |
| - var urlPattern = "\\?id=1"; |
21 |
| - var okResponse = "[1,2,3]"; |
22 |
| - server.CurrentRuleSet |
23 |
| - .AddRule() |
24 |
| - .WhenGet() |
25 |
| - .WhenUrlMatch(urlPattern) |
26 |
| - .SetOkResponse(okResponse); |
27 |
| - var client = server.CreateClient(); |
28 |
| -
|
29 |
| - // Act |
30 |
| - var response = await client.GetAsync("/?id=1"); |
31 |
| - |
32 |
| - // Assert |
33 |
| - response.EnsureSuccessStatusCode(); |
34 |
| - var message = await response.Content.ReadAsStringAsync(); |
35 |
| - Assert.AreEqual(okResponse, message); |
36 |
| -} |
| 17 | +// Return OK response for every request |
| 18 | +server.CurrentRuleSet |
| 19 | + .AddRule() |
| 20 | + .SetOkResponse("ok"); |
| 21 | +// Return Bad Request for every request |
| 22 | +server.CurrentRuleSet |
| 23 | + .AddRule() |
| 24 | + .SetBadRequest(); |
| 25 | +
|
| 26 | +// Return OK response for every HTTP GET request |
| 27 | +server.CurrentRuleSet |
| 28 | + .AddRule() |
| 29 | + .WhenGet() |
| 30 | + .SetOkResponse("ok"); |
| 31 | +
|
| 32 | +// Return OK response for every HTTP Get request that matches an url patter |
| 33 | +var urlPattern = "\\?id=1"; |
| 34 | +server.CurrentRuleSet |
| 35 | + .AddRule() |
| 36 | + .WhenUrlMatch(urlPattern) |
| 37 | + .SetOkResponse("ok") |
| 38 | +
|
| 39 | +// Return OK response for every HTTP request that has expected header |
| 40 | +server.CurrentRuleSet |
| 41 | + .AddRule() |
| 42 | + .WhenHeaderMatch("User-Agent", expectedUserAgent) |
| 43 | + .SetOkResponse("ok"); |
| 44 | +
|
| 45 | +// You can chain your configuration, if the request matches mutiple rules, the first match will be picked |
| 46 | +var firstPattern = "\\?id=1"; |
| 47 | +var secondPattern = "\\?id=*"; |
| 48 | +
|
| 49 | +server.CurrentRuleSet |
| 50 | + .AddRule() |
| 51 | + .WhenUrlMatch(firstPattern) |
| 52 | + .SetOkResponse("ok-1") |
| 53 | + .AddRule() |
| 54 | + .WhenUrlMatch(secondPattern) |
| 55 | + .SetOkResponse("ok-2"); |
| 56 | +
|
| 57 | +// Expire the rule after a certain count of match, once the rule has expired, it will never match a request |
| 58 | +server.CurrentRuleSet |
| 59 | + .AddRule() |
| 60 | + .SetMaxMatchCount(1) |
| 61 | + .SetOkResponse(okResponse); |
| 62 | +
|
| 63 | +// Return Ok response on the first request, and Ok response with a different content on the second request |
| 64 | +server.CurrentRuleSet |
| 65 | + .AddRule() |
| 66 | + .SetMaxMatchCount(1) |
| 67 | + .SetOkResponse("ok-1"); |
| 68 | + .AddRule() |
| 69 | + .SetOkResponse("ok-2"); |
| 70 | +
|
| 71 | +// Generate a HttpClient instance |
| 72 | +var httpClient = server.CreateClient(); |
| 73 | +
|
| 74 | +// Apply a HttpMessageHandler to the client |
| 75 | +var httpClient = server.CreateClient(new AddAuthorizationHandler()); |
37 | 76 | ```
|
38 | 77 |
|
39 | 78 | Check [the unit test cases](https://github.com/atwayne/TestServer/blob/master/test/TestServer.Tests/TestServerTests.cs) for more examples
|
0 commit comments