using System; using NUnit.Framework; using NzbDrone.Core.DecisionEngine.Specifications; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Test.Framework; using FizzWare.NBuilder; using System.Linq; using FluentAssertions; using NzbDrone.Core.Tv; using Moq; using System.Collections.Generic; namespace NzbDrone.Core.Test.DecisionEngineTests { [TestFixture] public class MultiSeasonSpecificationFixture : CoreTest { private RemoteEpisode _remoteEpisode; [SetUp] public void Setup() { var series = Builder.CreateNew().With(s => s.Id = 1234).Build(); _remoteEpisode = new RemoteEpisode { ParsedEpisodeInfo = new ParsedEpisodeInfo { FullSeason = true, IsMultiSeason = true }, Episodes = Builder.CreateListOfSize(3) .All() .With(s => s.SeriesId = series.Id) .BuildList(), Series = series, Release = new ReleaseInfo { Title = "Series.Title.S01-05.720p.BluRay.X264-RlsGrp" } }; Mocker.GetMock().Setup(s => s.EpisodesBetweenDates(It.IsAny(), It.IsAny(), false)) .Returns(new List()); } [Test] public void should_return_true_if_is_not_a_multi_season_release() { _remoteEpisode.ParsedEpisodeInfo.IsMultiSeason = false; _remoteEpisode.Episodes.Last().AirDateUtc = DateTime.UtcNow.AddDays(+2); Subject.IsSatisfiedBy(_remoteEpisode, null).Accepted.Should().BeTrue(); } [Test] public void should_return_false_if_is_a_multi_season_release() { Subject.IsSatisfiedBy(_remoteEpisode, null).Accepted.Should().BeFalse(); } } }