in CachingProxyTests/src/CachingProxyTest.cs [76:104]
public async Task Caching_Works()
{
await AssertGetResponse("/repo1.maven.org/maven2/org/apache/ant/ant-xz/1.10.5/ant-xz-1.10.5.jar", HttpStatusCode.OK,
(message, bytes) =>
{
AssertStatusHeader(message, CachingProxyStatus.MISS);
Assert.Equal("application/java-archive", message.Content.Headers.ContentType?.ToString());
Assert.Equal(11541, GetContentLength(message));
Assert.Equal(11541, bytes.Length);
Assert.Equal("eca06bb19a4f55673f8f40d0a20eb0ee0342403ee5856b890d6c612e5facb027", SHA256(bytes));
Assert.Equal("Tue, 10 Jul 2018 04:58:42 GMT", message.Content.Headers.GetValues("Last-Modified").Single());
Assert.Equal("public, max-age=31536000", message.Headers.CacheControl?.ToString());
});
await AssertGetResponse("/repo1.maven.org/maven2/org/apache/ant/ant-xz/1.10.5/ant-xz-1.10.5.jar", HttpStatusCode.OK,
(message, bytes) =>
{
AssertStatusHeader(message, CachingProxyStatus.HIT);
Assert.Equal(11541, GetContentLength(message));
Assert.Equal("application/java-archive", message.Content.Headers.ContentType?.ToString());
Assert.Equal(11541, bytes.Length);
Assert.Equal("eca06bb19a4f55673f8f40d0a20eb0ee0342403ee5856b890d6c612e5facb027", SHA256(bytes));
Assert.Equal("Tue, 10 Jul 2018 04:58:42 GMT", message.Content.Headers.GetValues("Last-Modified").Single());
Assert.Equal("public, max-age=31536000", message.Headers.CacheControl?.ToString());
});
Assert.Equal(11541, new FileInfo(
Path.Combine(myTempDirectory, "repo1.maven.org/maven2/org/apache/ant/ant-xz/1.10.5/cache-ant-xz-1.10.5.jar")).Length);
}