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);
                }
            }
        }
Example #2
0
 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);
 });