From 63eec85627bcd3c584865d47a237de44bcdb8b98 Mon Sep 17 00:00:00 2001 From: 杨宇千 Date: Tue, 20 Aug 2019 23:41:36 +0800 Subject: Use etag for cache. --- Timeline.Tests/IntegratedTests/UserAvatarTests.cs | 25 +++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'Timeline.Tests/IntegratedTests/UserAvatarTests.cs') diff --git a/Timeline.Tests/IntegratedTests/UserAvatarTests.cs b/Timeline.Tests/IntegratedTests/UserAvatarTests.cs index 0bed9598..1cb15edb 100644 --- a/Timeline.Tests/IntegratedTests/UserAvatarTests.cs +++ b/Timeline.Tests/IntegratedTests/UserAvatarTests.cs @@ -63,7 +63,16 @@ namespace Timeline.Tests.IntegratedTests body.Should().Equal(defaultAvatarData); } - await GetReturnDefault(); + EntityTagHeaderValue eTag; + { + var res = await client.GetAsync($"users/user/avatar"); + res.Should().HaveStatusCodeOk(); + res.Content.Headers.ContentType.MediaType.Should().Be("image/png"); + var body = await res.Content.ReadAsByteArrayAsync(); + body.Should().Equal(defaultAvatarData); + eTag = res.Headers.ETag; + } + await GetReturnDefault("admin"); { @@ -72,7 +81,19 @@ namespace Timeline.Tests.IntegratedTests RequestUri = new Uri(client.BaseAddress, "users/user/avatar"), Method = HttpMethod.Get, }; - request.Headers.Add("If-Modified-Since", DateTime.Now.ToString("r")); + request.Headers.TryAddWithoutValidation("If-None-Match", "\"dsdfd"); + var res = await client.SendAsync(request); + res.Should().HaveStatusCode(HttpStatusCode.BadRequest) + .And.Should().HaveBodyAsCommonResponseWithCode(CommonResponse.ErrorCodes.Header_BadFormat_IfNonMatch); + } + + { + var request = new HttpRequestMessage() + { + RequestUri = new Uri(client.BaseAddress, "users/user/avatar"), + Method = HttpMethod.Get, + }; + request.Headers.Add ("If-None-Match", eTag.ToString()); var res = await client.SendAsync(request); res.Should().HaveStatusCode(HttpStatusCode.NotModified); } -- cgit v1.2.3