using System.Collections.Generic; using System.Linq; using FizzWare.NBuilder; using Moq; using NUnit.Framework; using NzbDrone.Common.Crypto; using NzbDrone.Core.Download.Pending; using NzbDrone.Core.Movies; using NzbDrone.Core.Parser; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Test.Framework; namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests { [TestFixture] public class RemovePendingFixture : CoreTest { private List _pending; private Movie _movie; [SetUp] public void Setup() { _pending = new List(); _movie = Builder.CreateNew() .Build(); Mocker.GetMock() .Setup(s => s.AllByMovieId(It.IsAny())) .Returns(_pending); Mocker.GetMock() .Setup(s => s.All()) .Returns(_pending); Mocker.GetMock() .Setup(s => s.GetMovie(It.IsAny())) .Returns(_movie); Mocker.GetMock() .Setup(s => s.GetMovies(It.IsAny>())) .Returns(new List { _movie }); Mocker.GetMock() .Setup(s => s.GetMovie(It.IsAny())) .Returns(_movie); } private void AddPending(int id, string title, int year) { _pending.Add(new PendingRelease { Id = id, ParsedMovieInfo = new ParsedMovieInfo { MovieTitles = new List { title }, Year = year }, MovieId = _movie.Id }); } [Test] public void should_remove_same_release() { AddPending(id: 1, title: "Movie", year: 2001); var queueId = HashConverter.GetHashInt31(string.Format("pending-{0}-movie{1}", 1, _movie.Id)); Subject.RemovePendingQueueItems(queueId); AssertRemoved(1); } private void AssertRemoved(params int[] ids) { Mocker.GetMock().Verify(c => c.DeleteMany(It.Is>(s => s.SequenceEqual(ids)))); } } }