Skip to content

Commit f8ff25f

Browse files
committed
more examples on README
1 parent 1537ab4 commit f8ff25f

File tree

1 file changed

+59
-20
lines changed

1 file changed

+59
-20
lines changed

README.md

+59-20
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,65 @@
1414
1515
## Example
1616
```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());
3776
```
3877
3978
Check [the unit test cases](https://github.com/atwayne/TestServer/blob/master/test/TestServer.Tests/TestServerTests.cs) for more examples

0 commit comments

Comments
 (0)