public async Task ServesFreshContent_If_PragmaNoCache(string method) { var builders = ResponseCachingTestUtils.CreateBuildersWithResponseCaching(); foreach (var builder in builders) { using (var server = new TestServer(builder)) { var client = server.CreateClient(); var initialResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, "")); // verify the response is cached var cachedResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, "")); await AssertCachedResponseAsync(initialResponse, cachedResponse); // assert cached response no longer served client.DefaultRequestHeaders.Pragma.Clear(); client.DefaultRequestHeaders.Pragma.Add(new System.Net.Http.Headers.NameValueHeaderValue("no-cache")); var subsequentResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, "")); await AssertFreshResponseAsync(initialResponse, subsequentResponse); } } }
public async Task ServesFreshContent_IfNotAvailable(string method) { var builders = ResponseCachingTestUtils.CreateBuildersWithResponseCaching(); foreach (var builder in builders) { using (var server = new TestServer(builder)) { var client = server.CreateClient(); var initialResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, "")); var subsequentResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, "different")); await AssertFreshResponseAsync(initialResponse, subsequentResponse); } } }
public async Task ServesCachedContent_If_PathCasingDiffers(string method) { var builders = ResponseCachingTestUtils.CreateBuildersWithResponseCaching(); foreach (var builder in builders) { using (var server = new TestServer(builder)) { var client = server.CreateClient(); var initialResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, "path")); var subsequentResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, "PATH")); await AssertCachedResponseAsync(initialResponse, subsequentResponse); } } }
public async Task ServesFreshContent_If_Authorization_HeaderExists(string method) { var builders = ResponseCachingTestUtils.CreateBuildersWithResponseCaching(); foreach (var builder in builders) { using (var server = new TestServer(builder)) { var client = server.CreateClient(); client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("abc"); var initialResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, "")); var subsequentResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, "")); await AssertFreshResponseAsync(initialResponse, subsequentResponse); } } }