Series stats tests

This commit is contained in:
Mark McDowall 2013-09-08 17:31:31 -07:00
parent 2156d9ff9b
commit 14468eafee
1 changed files with 57 additions and 3 deletions

View File

@ -12,34 +12,88 @@ namespace NzbDrone.Core.Test.SeriesStatsTests
[TestFixture] [TestFixture]
public class SeriesStatisticsFixture : DbTest<SeriesStatisticsRepository, Series> public class SeriesStatisticsFixture : DbTest<SeriesStatisticsRepository, Series>
{ {
private Series _series;
private Episode _episode; private Episode _episode;
[SetUp] [SetUp]
public void Setup() public void Setup()
{ {
var series = Builder<Series>.CreateNew() _series = Builder<Series>.CreateNew()
.With(s => s.Id = 0) .With(s => s.Id = 0)
.With(s => s.Runtime = 30) .With(s => s.Runtime = 30)
.Build(); .Build();
series.Id = Db.Insert(series).Id; _series.Id = Db.Insert(_series).Id;
_episode = Builder<Episode>.CreateNew() _episode = Builder<Episode>.CreateNew()
.With(e => e.Id = 0) .With(e => e.Id = 0)
.With(e => e.SeriesId = series.Id) .With(e => e.EpisodeFileId = 0)
.With(e => e.Monitored = false)
.With(e => e.SeriesId = _series.Id)
.With(e => e.AirDateUtc = DateTime.Today.AddDays(5)) .With(e => e.AirDateUtc = DateTime.Today.AddDays(5))
.Build(); .Build();
}
private void GivenEpisodeWithFile()
{
_episode.EpisodeFileId = 1;
}
private void GivenMonitoredEpisode()
{
_episode.Monitored = true;
}
private void GivenFile()
{
Db.Insert(_episode); Db.Insert(_episode);
} }
[Test] [Test]
public void should_get_stats_for_series() public void should_get_stats_for_series()
{ {
GivenMonitoredEpisode();
GivenFile();
var stats = Subject.SeriesStatistics(); var stats = Subject.SeriesStatistics();
stats.Should().HaveCount(1); stats.Should().HaveCount(1);
stats.First().NextAiring.Should().Be(_episode.AirDateUtc); stats.First().NextAiring.Should().Be(_episode.AirDateUtc);
} }
[Test]
public void should_not_have_next_airing_for_episode_with_file()
{
GivenEpisodeWithFile();
GivenFile();
var stats = Subject.SeriesStatistics();
stats.Should().HaveCount(1);
stats.First().NextAiring.Should().NotHaveValue();
}
[Test]
public void should_not_include_unmonitored_episode_in_episode_count()
{
GivenFile();
var stats = Subject.SeriesStatistics();
stats.Should().HaveCount(1);
stats.First().EpisodeCount.Should().Be(0);
}
[Test]
public void should_include_unmonitored_episode_with_file_in_episode_count()
{
GivenEpisodeWithFile();
GivenFile();
var stats = Subject.SeriesStatistics();
stats.Should().HaveCount(1);
stats.First().EpisodeCount.Should().Be(1);
}
} }
} }