|
|
@ -379,5 +379,34 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
|
|
|
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
|
|
|
|
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
|
|
|
|
qualifiedReports.First().RemoteEpisode.Release.Should().Be(remoteEpisode1.Release);
|
|
|
|
qualifiedReports.First().RemoteEpisode.Release.Should().Be(remoteEpisode1.Release);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
|
|
|
public void should_prefer_quality_over_the_number_of_peers()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var remoteEpisode1 = GivenRemoteEpisode(new List<Episode> { GivenEpisode(1) }, new QualityModel(Quality.Bluray1080p));
|
|
|
|
|
|
|
|
var remoteEpisode2 = GivenRemoteEpisode(new List<Episode> { GivenEpisode(1) }, new QualityModel(Quality.SDTV));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var torrentInfo1 = new TorrentInfo();
|
|
|
|
|
|
|
|
torrentInfo1.PublishDate = DateTime.Now;
|
|
|
|
|
|
|
|
torrentInfo1.DownloadProtocol = DownloadProtocol.Torrent;
|
|
|
|
|
|
|
|
torrentInfo1.Seeders = 100;
|
|
|
|
|
|
|
|
torrentInfo1.Peers = 10;
|
|
|
|
|
|
|
|
torrentInfo1.Size = 200.Megabytes();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var torrentInfo2 = torrentInfo1.JsonClone();
|
|
|
|
|
|
|
|
torrentInfo2.Seeders = 1100;
|
|
|
|
|
|
|
|
torrentInfo2.Peers = 10;
|
|
|
|
|
|
|
|
torrentInfo1.Size = 250.Megabytes();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
remoteEpisode1.Release = torrentInfo1;
|
|
|
|
|
|
|
|
remoteEpisode2.Release = torrentInfo2;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var decisions = new List<DownloadDecision>();
|
|
|
|
|
|
|
|
decisions.Add(new DownloadDecision(remoteEpisode1));
|
|
|
|
|
|
|
|
decisions.Add(new DownloadDecision(remoteEpisode2));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
|
|
|
|
|
|
|
|
((TorrentInfo)qualifiedReports.First().RemoteEpisode.Release).Should().Be(torrentInfo1);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|