public void JobQueuing_WithSpecifiedRangeAndOffset() { BytesRange range = BytesRangeUtils.Make(450, 830); long offset = 512; var jobs = ChunkedHttpDownloader.BuildDownloadJobQueue(_url, offset, range, DataSize, _chunksData).ToList(); Assert.That(jobs.Count, Is.EqualTo(3)); var firstJob = jobs[0]; Assert.That(firstJob.Url, Is.EqualTo("test.com/someData.4")); Assert.That(firstJob.Range.Start, Is.EqualTo(0)); Assert.That(firstJob.Range.End, Is.EqualTo(-1)); var middleJob = jobs[1]; Assert.That(middleJob.Url, Is.EqualTo("test.com/someData.5")); Assert.That(middleJob.Range.Start, Is.EqualTo(0)); Assert.That(middleJob.Range.End, Is.EqualTo(-1)); var lastJob = jobs[2]; Assert.That(lastJob.Url, Is.EqualTo("test.com/someData.6")); Assert.That(lastJob.Range.Start, Is.EqualTo(0)); Assert.That(lastJob.Range.End, Is.EqualTo(63)); }
public void JobQueuing_SinglePartScenario() { BytesRange range = BytesRangeUtils.Make(315, 380); var jobs = ChunkedHttpDownloader.BuildDownloadJobQueue(_url, 0, range, DataSize, _chunksData).ToList(); Assert.That(jobs.Count, Is.EqualTo(1)); var job = jobs[0]; Assert.That(job.Url, Is.EqualTo("test.com/someData.2")); Assert.That(job.Range.Start, Is.EqualTo(0)); Assert.That(job.Range.End, Is.EqualTo(-1).Or.EqualTo(127)); }
public void JobQueuing_WithFullRange() { BytesRange range = BytesRangeUtils.Full(); var jobs = ChunkedHttpDownloader.BuildDownloadJobQueue(_url, 0, range, DataSize, _chunksData).ToList(); int expectedJobCount = (int)(DataSize / PartSize) + 1; Assert.That(jobs.Count, Is.EqualTo(expectedJobCount)); var firstJob = jobs[0]; Assert.That(firstJob.Range.Start, Is.EqualTo(0)); Assert.That(firstJob.Range.End, Is.EqualTo(-1)); var lastJob = jobs[expectedJobCount - 1]; Assert.That(lastJob.Range.Start, Is.EqualTo(0)); Assert.That(lastJob.Range.End, Is.EqualTo(-1)); }