using System; using System.Collections.Generic; using Moq; using NUnit.Framework; using NzbDrone.Core.DecisionEngine; using NzbDrone.Core.Download.Pending; using NzbDrone.Core.Indexers; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Test.Framework; using FluentAssertions; namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests { [TestFixture] public class PendingReleaseServiceFixture : CoreTest { private void GivenPendingRelease() { Mocker.GetMock() .Setup(v => v.All()) .Returns(new List { new PendingRelease { Release = new ReleaseInfo { IndexerId = 1 } } }); } [Test] public void should_not_ignore_pending_items_from_available_indexer() { Mocker.GetMock() .Setup(v => v.GetBlockedIndexers()) .Returns(new List()); GivenPendingRelease(); var results = Subject.GetPending(); results.Should().NotBeEmpty(); Mocker.GetMock() .Verify(v => v.GetRssDecision(It.Is>(d => d.Count == 0)), Times.Never()); } [Test] public void should_ignore_pending_items_from_unavailable_indexer() { Mocker.GetMock() .Setup(v => v.GetBlockedIndexers()) .Returns(new List { new IndexerStatus { ProviderId = 1, DisabledTill = DateTime.UtcNow.AddHours(2) } }); GivenPendingRelease(); var results = Subject.GetPending(); results.Should().BeEmpty(); } } }