using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; using NzbDrone.Core.Download.TrackedDownloads; using NzbDrone.Core.Queue; using NzbDrone.Core.Test.Framework; using FizzWare.NBuilder; using FluentAssertions; using NzbDrone.Core.Tv; using NzbDrone.Core.Parser.Model; namespace NzbDrone.Core.Test.QueueTests { [TestFixture] public class QueueServiceFixture : CoreTest { private List _trackedDownloads; [SetUp] public void SetUp() { var downloadItem = Builder.CreateNew() .With(v => v.RemainingTime = TimeSpan.FromSeconds(10)) .Build(); var series = Builder.CreateNew() .Build(); var episodes = Builder.CreateListOfSize(3) .All() .With(e => e.SeriesId = series.Id) .Build(); var remoteEpisode = Builder.CreateNew() .With(r => r.Series = series) .With(r => r.Episodes = new List(episodes)) .With(r => r.ParsedEpisodeInfo = new ParsedEpisodeInfo()) .Build(); _trackedDownloads = Builder.CreateListOfSize(1) .All() .With(v => v.DownloadItem = downloadItem) .With(v => v.RemoteEpisode = remoteEpisode) .Build() .ToList(); } [Test] public void queue_items_should_have_id() { Subject.Handle(new TrackedDownloadRefreshedEvent(_trackedDownloads)); var queue = Subject.GetQueue(); queue.Should().HaveCount(3); queue.All(v => v.Id > 0).Should().BeTrue(); var distinct = queue.Select(v => v.Id).Distinct().ToArray(); distinct.Should().HaveCount(3); } } }