Lidarr/NzbDrone.Core.Test/EpisodeStatusTest.cs

134 lines
5.0 KiB
C#
Raw Normal View History

// ReSharper disable RedundantUsingDirective
// ReSharper disable RedundantUsingDirective
using System;
using FizzWare.NBuilder;
using MbUnit.Framework;
using NzbDrone.Core.Model;
using NzbDrone.Core.Repository;
using NzbDrone.Core.Test.Framework;
namespace NzbDrone.Core.Test
{
[TestFixture]
// ReSharper disable InconsistentNaming
public class EpisodeStatusTest : TestBase
{
[Test]
[Row(1, false, false, EpisodeStatusType.NotAired)]
[Row(-2, false, false, EpisodeStatusType.Missing)]
[Row(1, true, false, EpisodeStatusType.Ready)]
[Row(1, false, true, EpisodeStatusType.Ignored)]
public void no_grab_date(int offsetDays, bool hasEpisodes, bool ignored, EpisodeStatusType status)
{
Episode episode = Builder<Episode>.CreateNew()
.With(e => e.Season = Builder<Season>.CreateNew()
.With(s => s.Monitored = true).Build())
.With(e => e.AirDate = DateTime.Now.AddDays(offsetDays))
.With(e => e.Ignored = ignored)
.With(e => e.EpisodeFileId = 0)
.With(e => e.GrabDate = null)
.Build();
if (hasEpisodes)
{
episode.EpisodeFileId = 12;
}
Assert.AreEqual(status, episode.Status);
}
[Test]
[Row(1, false, false, EpisodeStatusType.NotAired)]
[Row(-2, false, false, EpisodeStatusType.Missing)]
[Row(1, true, false, EpisodeStatusType.Ready)]
[Row(1, false, true, EpisodeStatusType.Ignored)]
public void old_grab_date(int offsetDays, bool hasEpisodes, bool ignored,
EpisodeStatusType status)
{
Episode episode = Builder<Episode>.CreateNew()
.With(e => e.Season = Builder<Season>.CreateNew()
.With(s => s.Monitored = true).Build()).With(
e => e.AirDate = DateTime.Now.AddDays(offsetDays))
.With(e => e.Ignored = ignored)
.With(e => e.EpisodeFileId = 0)
.With(e => e.GrabDate = DateTime.Now.AddDays(-1).AddHours(-1))
.Build();
if (hasEpisodes)
{
episode.EpisodeFileId = 12;
}
Assert.AreEqual(status, episode.Status);
}
[Test]
[Row(1, false, false, EpisodeStatusType.Downloading)]
[Row(-2, false, false, EpisodeStatusType.Downloading)]
[Row(1, true, false, EpisodeStatusType.Downloading)]
2011-06-02 01:16:17 +00:00
[Row(1, true, true, EpisodeStatusType.Downloading)]
[Row(1, false, true, EpisodeStatusType.Downloading)]
public void recent_grab_date(int offsetDays, bool hasEpisodes, bool ignored,
EpisodeStatusType status)
{
Episode episode = Builder<Episode>.CreateNew()
.With(e => e.Season = Builder<Season>.CreateNew()
.With(s => s.Monitored = true).Build())
.With(e => e.AirDate = DateTime.Now.AddDays(offsetDays))
.With(e => e.Ignored = ignored)
.With(e => e.EpisodeFileId = 0)
.With(e => e.GrabDate = DateTime.Now.AddDays(-1))
.Build();
if (hasEpisodes)
{
episode.EpisodeFileId = 12;
}
Assert.AreEqual(status, episode.Status);
}
[Test]
[Row(1, false, false, EpisodeStatusType.Ignored)]
[Row(-2, false, false, EpisodeStatusType.Ignored)]
[Row(1, false, true, EpisodeStatusType.Ignored)]
public void skipped_season(int offsetDays, bool hasEpisodes, bool ignored, EpisodeStatusType status)
{
Episode episode = Builder<Episode>.CreateNew()
.With(e => e.AirDate = DateTime.Now.AddDays(offsetDays))
.With(e => e.Ignored = ignored)
.With(e => e.EpisodeFileId = 0)
2011-06-02 01:16:17 +00:00
.With(e => e.GrabDate = null)
.With(e => e.Season = Builder<Season>.CreateNew()
.With(s => s.Monitored == false).Build())
2011-06-02 01:16:17 +00:00
.Build();
if (hasEpisodes)
{
episode.EpisodeFileId = 12;
}
Assert.AreEqual(status, episode.Status);
}
2011-05-22 17:29:10 +00:00
[Test]
public void low_air_date()
{
Episode episode = Builder<Episode>.CreateNew()
.With(e => e.AirDate = DateTime.Now.AddYears(-200))
.With(e => e.Ignored = false)
.With(e => e.EpisodeFileId = 0)
2011-06-02 01:16:17 +00:00
.With(e => e.GrabDate = null)
2011-05-22 17:29:10 +00:00
.With(e => e.Season = Builder<Season>.CreateNew()
.With(s => s.Monitored = true).Build())
.Build();
2011-06-02 01:16:17 +00:00
2011-05-22 17:29:10 +00:00
Assert.AreEqual(EpisodeStatusType.NotAired, episode.Status);
}
}
}