Fixed: Nullref due to InfoHash on AlreadyImportedSpec

This commit is contained in:
Qstick 2019-04-11 20:46:34 -04:00
commit d17e7cb13b
2 changed files with 32 additions and 2 deletions

View file

@ -153,6 +153,36 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse(); Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
} }
[Test]
public void should_be_accepted_if_release_torrent_hash_is_null()
{
var downloadId = Guid.NewGuid().ToString().ToUpper();
GivenHistoryItem(downloadId, TITLE, _mp3, HistoryEventType.Grabbed);
GivenHistoryItem(downloadId, TITLE, _flac, HistoryEventType.DownloadImported);
_remoteAlbum.Release = Builder<TorrentInfo>.CreateNew()
.With(t => t.DownloadProtocol = DownloadProtocol.Torrent)
.With(t => t.InfoHash = null)
.Build();
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
}
[Test]
public void should_be_accepted_if_release_torrent_hash_is_null_and_downloadId_is_null()
{
GivenHistoryItem(null, TITLE, _mp3, HistoryEventType.Grabbed);
GivenHistoryItem(null, TITLE, _flac, HistoryEventType.DownloadImported);
_remoteAlbum.Release = Builder<TorrentInfo>.CreateNew()
.With(t => t.DownloadProtocol = DownloadProtocol.Torrent)
.With(t => t.InfoHash = null)
.Build();
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
}
[Test] [Test]
public void should_be_rejected_if_release_title_matches_grabbed_event_source_title() public void should_be_rejected_if_release_title_matches_grabbed_event_source_title()
{ {

View file

@ -77,13 +77,13 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
continue; continue;
} }
var release = subject.Release; var release = subject.Release;
if (release.DownloadProtocol == DownloadProtocol.Torrent) if (release.DownloadProtocol == DownloadProtocol.Torrent)
{ {
var torrentInfo = release as TorrentInfo; var torrentInfo = release as TorrentInfo;
if (torrentInfo != null && torrentInfo.InfoHash.ToUpper() == lastGrabbed.DownloadId) if (torrentInfo?.InfoHash != null && torrentInfo.InfoHash.ToUpper() == lastGrabbed.DownloadId)
{ {
_logger.Debug("Has same torrent hash as a grabbed and imported release"); _logger.Debug("Has same torrent hash as a grabbed and imported release");
return Decision.Reject("Has same torrent hash as a grabbed and imported release"); return Decision.Reject("Has same torrent hash as a grabbed and imported release");