using System.Collections.Generic; using FluentAssertions; using Moq; using NUnit.Framework; using NzbDrone.Core.Download; using NzbDrone.Core.Download.TrackedDownloads; using NzbDrone.Core.History; using NzbDrone.Core.Parser; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Test.Framework; using NzbDrone.Core.Movies; using NzbDrone.Core.Indexers; using System.Linq; namespace NzbDrone.Core.Test.Download.TrackedDownloads { [TestFixture] public class TrackedDownloadServiceFixture : CoreTest { [SetUp] public void Setup() { } private void GivenDownloadHistory() { Mocker.GetMock() .Setup(s => s.FindByDownloadId(It.Is(sr => sr == "35238"))) .Returns(new List(){ new History.History(){ DownloadId = "35238", SourceTitle = "TV Series S01", MovieId = 3, } }); } [Test] public void should_track_downloads_using_the_source_title_if_it_cannot_be_found_using_the_download_title() { GivenDownloadHistory(); var remoteEpisode = new RemoteMovie { Movie = new Movie() { Id = 3 }, ParsedMovieInfo = new ParsedMovieInfo() { MovieTitle = "A Movie", Year = 1998 } }; Mocker.GetMock() .Setup(s => s.Map(It.Is(i => i.MovieTitle == "A Movie"), It.IsAny(), null)) .Returns(new MappingResult{RemoteMovie = remoteEpisode}); ParseMovieTitle(); var client = new DownloadClientDefinition() { Id = 1, Protocol = DownloadProtocol.Torrent }; var item = new DownloadClientItem() { Title = "A Movie 1998", DownloadId = "35238", }; var trackedDownload = Subject.TrackDownload(client, item); trackedDownload.Should().NotBeNull(); trackedDownload.RemoteMovie.Should().NotBeNull(); trackedDownload.RemoteMovie.Movie.Should().NotBeNull(); trackedDownload.RemoteMovie.Movie.Id.Should().Be(3); } } }