public void CheckIfRange_NoRangeHeader_Null()
        {
            //Arrange
            var httpRequest = MockRepository.GenerateMock<HttpRequestBase>();
            var headers = MockRepository.GenerateMock<NameValueCollection>();
            httpRequest.Stub(x => x.Headers).Return(headers);
            var lastModified = new DateTime(2010, 01, 01, 01, 01, 01);
            var etag = "1234567";
            var headerValue = string.Empty;
            var headerType = HttpRequestHeader.Range;
            var headerName = (string)headerType;

            httpRequest.Headers.Expect(x => x[headerName]).Return(headerValue);

            //Act
            var httpRequestHeaderHelper = new HttpRequestHeaderHelper();
            var satisfiesRangeCheck = httpRequestHeaderHelper.CheckIfRange(httpRequest, etag, lastModified);

            //Assert
            headers.VerifyAllExpectations();
            httpRequest.VerifyAllExpectations();
            Assert.IsNull(satisfiesRangeCheck);
        }
        public void CheckIfRange_CheckOnLastModifiedIfRangeHeader_True()
        {
            //Arrange
            var httpRequest = MockRepository.GenerateMock<HttpRequestBase>();
            var headers = MockRepository.GenerateMock<NameValueCollection>();
            httpRequest.Stub(x => x.Headers).Return(headers);

            var lastModified = new DateTime(2010, 01, 01, 01, 01, 01);
            var etag = "1234567";

            var rangeRequestHeaderValue = "bytes=500-600,601-999";
            var rangeRequestHeaderType = HttpRequestHeader.Range;
            var rangeRequestHeaderName = (string)rangeRequestHeaderType;

            var ifRangeHeaderValue = lastModified.ToString("r");
            var ifRangeHeaderType = HttpRequestHeader.IfRange;
            var ifRangeHeaderName = (string)ifRangeHeaderType;

            httpRequest.Headers.Expect(x => x[rangeRequestHeaderName]).Return(rangeRequestHeaderValue);
            httpRequest.Headers.Expect(x => x[ifRangeHeaderName]).Return(ifRangeHeaderValue);

            //Act
            var httpRequestHeaderHelper = new HttpRequestHeaderHelper();
            var satisfiesRangeCheck = httpRequestHeaderHelper.CheckIfRange(httpRequest, etag, lastModified);

            //Assert
            headers.VerifyAllExpectations();
            httpRequest.VerifyAllExpectations();
            Assert.IsNotNull(satisfiesRangeCheck);
            Assert.True(satisfiesRangeCheck.Value);
        }