public async Task ServerCanBeUsedAsFakeProxy() { var proxyResp = Handlers.Status(200).Then(Handlers.BodyString("text/plain", "hello")); using (var fakeProxy = HttpServer.Start(proxyResp)) { var proxyParam = new WebProxy(fakeProxy.Uri); using (var client = new HttpClient(new HttpClientHandler { Proxy = proxyParam }, true)) { var fakeTargetUri = new Uri("http://example/not/real"); var resp = await client.GetAsync(fakeTargetUri); Assert.Equal(200, (int)resp.StatusCode); Assert.Equal("hello", await resp.Content.ReadAsStringAsync()); var request = fakeProxy.Recorder.RequireRequest(); Assert.Equal("GET", request.Method); Assert.Equal(fakeTargetUri, request.Uri); Assert.Equal("/not/real", request.Path); } } }
public async void NoPathsMatchByDefault() => await WithServerAndClient(Handlers.Router(out _), async (server, client) => { var resp = await client.GetAsync(server.Uri); Assert.Equal(404, (int)resp.StatusCode); });