public void GetRanges_Second500Bytes_True()
        {
            //Arrange
            var httpRequest = MockRepository.GenerateMock<HttpRequestBase>();
            var contentLength = 10000;
            var headerValue = "bytes=500-999";
            var headerType = HttpRequestHeader.Range;
            var headerName = (string)headerType;

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

            //Act
            var httpRequestHeaderHelper = new HttpRequestHeaderHelper();
            IEnumerable<RangeItem> ranges;
            var rangeResult = httpRequestHeaderHelper.GetRanges(httpRequest, contentLength, out ranges);
            var rangeItem = ranges.First();

            //Assert
            httpRequest.VerifyAllExpectations();
            Assert.NotNull(rangeResult);
            Assert.IsTrue(rangeResult.Value);

            Assert.IsNotNull(ranges);
            Assert.IsTrue(ranges.Any());
            Assert.AreEqual(500, rangeItem.StartRange);
            Assert.AreEqual(999, rangeItem.EndRange);
        }
        public void GetRanges_StartRangeLargerThenEntityLength_False()
        {
            //Arrange
            var httpRequest = MockRepository.GenerateMock<HttpRequestBase>();
            var contentLength = 10000;
            var headerValue = "bytes=20000-";
            var headerType = HttpRequestHeader.Range;
            var headerName = (string)headerType;

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

            //Act
            var httpRequestHeaderHelper = new HttpRequestHeaderHelper();
            IEnumerable<RangeItem> ranges;
            var rangeResult = httpRequestHeaderHelper.GetRanges(httpRequest, contentLength, out ranges);

            //Assert
            httpRequest.VerifyAllExpectations();
            Assert.NotNull(rangeResult);
            Assert.IsFalse(rangeResult.Value);
            Assert.IsNull(ranges);
        }
        public void GetRanges_NoHeaderSent_Null()
        {
            //Arrange
            var httpRequest = MockRepository.GenerateMock<HttpRequestBase>();
            var contentLength = 10000;
            var headerValue = string.Empty;
            var headerType = HttpRequestHeader.Range;
            var headerName = (string)headerType;

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

            //Act
            var httpRequestHeaderHelper = new HttpRequestHeaderHelper();
            IEnumerable<RangeItem> ranges;
            var rangeResult = httpRequestHeaderHelper.GetRanges(httpRequest, contentLength, out ranges);

            //Assert
            httpRequest.VerifyAllExpectations();
            Assert.IsNull(rangeResult);
            Assert.IsNotNull(ranges);
            Assert.IsFalse(ranges.Any());
        }