コード例 #1
0
ファイル: FileResultTest.cs プロジェクト: Nishadks1/Mvc-1
        public void GetPreconditionState_ShouldNotProcess_NotModified(string ifMatch, string ifNoneMatch)
        {
            // Arrange
            var actionContext = new ActionContext();
            var httpContext   = new DefaultHttpContext();

            httpContext.Request.Method = HttpMethods.Get;
            var httpRequestHeaders = httpContext.Request.GetTypedHeaders();
            var lastModified       = DateTimeOffset.MinValue;

            lastModified = new DateTimeOffset(lastModified.Year, lastModified.Month, lastModified.Day, lastModified.Hour, lastModified.Minute, lastModified.Second, TimeSpan.FromSeconds(0));
            var etag = new EntityTagHeaderValue("\"Etag\"");

            httpRequestHeaders.IfMatch = ifMatch == null ? null : new[]
            {
                new EntityTagHeaderValue(ifMatch),
            };

            httpRequestHeaders.IfNoneMatch = ifNoneMatch == null ? null : new[]
            {
                new EntityTagHeaderValue(ifNoneMatch),
            };
            httpRequestHeaders.IfModifiedSince = lastModified;
            actionContext.HttpContext          = httpContext;

            // Act
            var state = FileResultExecutorBase.GetPreconditionState(
                httpRequestHeaders,
                lastModified,
                etag);

            // Assert
            Assert.Equal(FileResultExecutorBase.PreconditionState.NotModified, state);
        }
コード例 #2
0
ファイル: FileResultTest.cs プロジェクト: Nishadks1/Mvc-1
        public void IfRangeValid_IgnoreRangeRequest(string ifRangeString, bool expected)
        {
            // Arrange
            var actionContext = new ActionContext();
            var httpContext   = new DefaultHttpContext();

            httpContext.Request.Method = HttpMethods.Get;
            var httpRequestHeaders = httpContext.Request.GetTypedHeaders();
            var lastModified       = DateTimeOffset.MinValue;

            lastModified = new DateTimeOffset(lastModified.Year, lastModified.Month, lastModified.Day, lastModified.Hour, lastModified.Minute, lastModified.Second, TimeSpan.FromSeconds(0));
            var etag = new EntityTagHeaderValue("\"Etag\"");

            httpRequestHeaders.IfRange         = new RangeConditionHeaderValue(ifRangeString);
            httpRequestHeaders.IfModifiedSince = lastModified;
            actionContext.HttpContext          = httpContext;

            // Act
            var ifRangeIsValid = FileResultExecutorBase.IfRangeValid(
                httpRequestHeaders,
                lastModified,
                etag);

            // Assert
            Assert.Equal(expected, ifRangeIsValid);
        }
コード例 #3
0
ファイル: FileResultTest.cs プロジェクト: Nishadks1/Mvc-1
        public void GetPreconditionState_ShouldNotProcess_PreconditionFailed(string ifMatch, string ifNoneMatch)
        {
            // Arrange
            var actionContext = new ActionContext();
            var httpContext   = new DefaultHttpContext();

            httpContext.Request.Method = HttpMethods.Delete;
            var httpRequestHeaders = httpContext.Request.GetTypedHeaders();
            var lastModified       = DateTimeOffset.MinValue.AddDays(1);
            var etag = new EntityTagHeaderValue("\"Etag\"");

            httpRequestHeaders.IfMatch = ifMatch == null ? null : new[]
            {
                new EntityTagHeaderValue(ifMatch),
            };

            httpRequestHeaders.IfNoneMatch = ifNoneMatch == null ? null : new[]
            {
                new EntityTagHeaderValue(ifNoneMatch),
            };
            httpRequestHeaders.IfUnmodifiedSince = DateTimeOffset.MinValue;
            httpRequestHeaders.IfModifiedSince   = DateTimeOffset.MinValue.AddDays(2);
            actionContext.HttpContext            = httpContext;

            // Act
            var state = FileResultExecutorBase.GetPreconditionState(
                httpRequestHeaders,
                lastModified,
                etag);

            // Assert
            Assert.Equal(FileResultExecutorBase.PreconditionState.PreconditionFailed, state);
        }