示例#1
0
        public async Task Http_context_maps_if_none_match()
        {
            //Arrange
            const string fakeEtag        = "84de625db71b56d480d47bdc32377d23144b8c65";
            var          fakeIfNoneMatch = new Microsoft.Extensions.Primitives.StringValues(fakeEtag);
            var          context         = A.Fake <HttpContext>();
            var          response        = A.Fake <HttpResponse>();
            var          request         = A.Fake <HttpRequest>();

            A.CallTo(() => request.Headers.TryGetValue(HeaderNames.IfNoneMatch, out fakeIfNoneMatch))
            .Returns(true);
            A.CallTo(() => context.Request).Returns(request);

            A.CallTo(() => response.Headers.ContainsKey(HeaderNames.ETag)).Returns(true);
            A.CallTo(() => response.Headers[HeaderNames.ETag]).Returns(fakeEtag);
            A.CallTo(() => context.Response).Returns(response);

            //Act
            var cachedResponse = new CachedResponse(context, Array.Empty <byte>());
            await cachedResponse.MapToContext(context);

            //Assert
            Assert.Equal(cachedResponse.Headers[HeaderNames.ETag], response.Headers[HeaderNames.ETag]);
            Assert.Equal(StatusCodes.Status304NotModified, response.StatusCode);
            Assert.Equal(0, response.ContentLength);
        }
示例#2
0
        public async Task Http_context_maps_content_type()
        {
            //Arrange
            var context  = A.Fake <HttpContext>();
            var response = A.Fake <HttpResponse>();

            A.CallTo(() => response.ContentType).Returns("application/json");
            A.CallTo(() => context.Response).Returns(response);

            //Act
            var cachedResponse = new CachedResponse(context, Array.Empty <byte>());
            await cachedResponse.MapToContext(context);

            //Assert
            Assert.Equal(cachedResponse.ContentType, response.ContentType);
        }
示例#3
0
        public async Task Http_context_maps_status_code()
        {
            //Arrange
            var context  = A.Fake <HttpContext>();
            var response = A.Fake <HttpResponse>();

            A.CallTo(() => response.StatusCode).Returns(200);
            A.CallTo(() => context.Response).Returns(response);

            //Act
            var cachedResponse = new CachedResponse(context, Array.Empty <byte>());
            await cachedResponse.MapToContext(context);

            //Assert
            Assert.Equal(cachedResponse.StatusCode, response.StatusCode);
        }
示例#4
0
        public async Task Http_context_maps_etag()
        {
            //Arrange
            const string fakeEtag = "123456";
            var          context  = A.Fake <HttpContext>();
            var          response = A.Fake <HttpResponse>();
            var          request  = A.Fake <HttpRequest>();

            A.CallTo(() => request.Headers.ContainsKey(HeaderNames.ETag)).Returns(true);
            A.CallTo(() => request.Headers[HeaderNames.ETag]).Returns(fakeEtag);

            A.CallTo(() => response.Headers.ContainsKey(HeaderNames.ETag)).Returns(true);
            A.CallTo(() => response.Headers[HeaderNames.ETag]).Returns(fakeEtag);
            A.CallTo(() => context.Request).Returns(request);
            A.CallTo(() => context.Response).Returns(response);

            //Act
            var cachedResponse = new CachedResponse(context, Array.Empty <byte>());
            await cachedResponse.MapToContext(context);

            //Assert
            Assert.Equal(cachedResponse.Headers[HeaderNames.ETag], response.Headers[HeaderNames.ETag]);
        }