using System.Collections.Generic; using System.Linq; using Moq; using NUnit.Framework; using NzbDrone.Core.Books; using NzbDrone.Core.DecisionEngine; using NzbDrone.Core.Download; using NzbDrone.Core.IndexerSearch; using NzbDrone.Core.Messaging.Commands; using NzbDrone.Core.Test.Framework; namespace NzbDrone.Core.Test.IndexerSearchTests { [TestFixture] public class AuthorSearchServiceFixture : CoreTest { private Author _author; [SetUp] public void Setup() { _author = new Author(); Mocker.GetMock() .Setup(s => s.GetAuthor(It.IsAny())) .Returns(_author); Mocker.GetMock() .Setup(s => s.AuthorSearch(_author.Id, false, true, false)) .Returns(new List()); Mocker.GetMock() .Setup(s => s.ProcessDecisions(It.IsAny>())) .Returns(new ProcessedDecisions(new List(), new List(), new List())); } [Test] public void should_only_include_monitored_books() { _author.Books = new List { new Book { Monitored = false }, new Book { Monitored = true } }; Subject.Execute(new AuthorSearchCommand { AuthorId = _author.Id, Trigger = CommandTrigger.Manual }); Mocker.GetMock() .Verify(v => v.AuthorSearch(_author.Id, false, true, false), Times.Exactly(_author.Books.Value.Count(s => s.Monitored))); } } }