using System; using System.Collections.Generic; using System.Linq; using FizzWare.NBuilder; using Moq; using NUnit.Framework; using NzbDrone.Core.Jobs; using NzbDrone.Core.Model.Notification; using NzbDrone.Core.Providers; using NzbDrone.Core.Repository; using NzbDrone.Core.Test.Framework; using NzbDrone.Test.Common.AutoMoq; namespace NzbDrone.Core.Test.JobTests { [TestFixture] public class RecentBacklogSearchJobTest : CoreTest { [SetUp] public void Setup() { } [Test] public void no_missing_epsiodes_should_not_trigger_any_search() { //Setup var episodes = new List(); Mocker.GetMock() .Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes); //Act Mocker.Resolve().Start(MockNotification, 0, 0); //Assert Mocker.GetMock().Verify(c => c.Start(MockNotification, It.IsAny(), 0), Times.Never()); } [Test] public void should_only_process_missing_episodes_from_the_last_30_days() { //Setup var episodes = Builder.CreateListOfSize(50) .TheFirst(5) .With(e => e.AirDate = DateTime.Today) .TheNext(5) .With(e => e.AirDate = DateTime.Today.AddDays(-1)) //Today .TheNext(5) .With(e => e.AirDate = DateTime.Today.AddDays(-5)) //Yeserday .TheNext(5) .With(e => e.AirDate = DateTime.Today.AddDays(-10)) .TheNext(5) .With(e => e.AirDate = DateTime.Today.AddDays(-15)) .TheNext(5) .With(e => e.AirDate = DateTime.Today.AddDays(-20)) .TheNext(5) .With(e => e.AirDate = DateTime.Today.AddDays(-25)) .TheNext(5) .With(e => e.AirDate = DateTime.Today.AddDays(-30)) .TheNext(5) .With(e => e.AirDate = DateTime.Today.AddDays(-31)) //31 Days .TheNext(5) .With(e => e.AirDate = DateTime.Today.AddDays(-35)) .Build(); Mocker.GetMock() .Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes); Mocker.GetMock().Setup(c => c.Start(It.IsAny(), It.IsAny(), 0)); //Act Mocker.Resolve().Start(MockNotification, 0, 0); //Assert Mocker.GetMock().Verify(c => c.Start(It.IsAny(), It.IsAny(), 0), Times.Exactly(40)); } } }