2012-02-12 03:02:36 +03:00
|
|
|
// ReSharper disable InconsistentNaming
|
2011-06-18 02:01:09 +03:00
|
|
|
using System;
|
2011-06-20 06:21:54 +03:00
|
|
|
using System.Collections.Generic;
|
2011-09-29 03:20:29 +03:00
|
|
|
using System.Linq;
|
2011-06-18 02:01:09 +03:00
|
|
|
using FizzWare.NBuilder;
|
2011-06-20 06:21:54 +03:00
|
|
|
using FluentAssertions;
|
2011-06-18 02:01:09 +03:00
|
|
|
using NUnit.Framework;
|
|
|
|
using NzbDrone.Core.Providers;
|
|
|
|
using NzbDrone.Core.Repository;
|
|
|
|
using NzbDrone.Core.Test.Framework;
|
|
|
|
|
2011-10-21 02:42:17 +03:00
|
|
|
namespace NzbDrone.Core.Test.ProviderTests
|
2011-06-18 02:01:09 +03:00
|
|
|
{
|
|
|
|
[TestFixture]
|
2012-02-12 03:02:36 +03:00
|
|
|
|
2011-11-13 10:27:16 +03:00
|
|
|
public class UpcomingEpisodesProviderTest : CoreTest
|
2011-06-18 02:01:09 +03:00
|
|
|
{
|
2011-09-29 03:20:29 +03:00
|
|
|
private IList<Episode> episodes;
|
2011-06-20 06:21:54 +03:00
|
|
|
private Series series;
|
2011-06-18 02:01:09 +03:00
|
|
|
|
|
|
|
[SetUp]
|
2011-10-24 08:54:09 +03:00
|
|
|
public void Setup()
|
2011-06-18 02:01:09 +03:00
|
|
|
{
|
2012-02-12 03:02:36 +03:00
|
|
|
WithRealDb();
|
|
|
|
|
2011-09-29 03:20:29 +03:00
|
|
|
episodes = Builder<Episode>.CreateListOfSize(6)
|
2011-10-19 00:46:06 +03:00
|
|
|
.All()
|
|
|
|
.With(e => e.SeriesId = 1)
|
|
|
|
.With(e => e.Ignored = false)
|
|
|
|
.TheFirst(1)
|
2011-10-23 08:39:14 +03:00
|
|
|
.With(e => e.AirDate = DateTime.Today.AddDays(-1))
|
|
|
|
.TheNext(1)
|
|
|
|
.With(e => e.AirDate = DateTime.Today)
|
|
|
|
.TheNext(1)
|
|
|
|
.With(e => e.AirDate = DateTime.Today.AddDays(1))
|
|
|
|
.TheNext(1)
|
|
|
|
.With(e => e.AirDate = DateTime.Today.AddDays(2))
|
|
|
|
.TheNext(1)
|
|
|
|
.With(e => e.AirDate = DateTime.Today.AddDays(7))
|
|
|
|
.TheNext(1)
|
|
|
|
.With(e => e.AirDate = DateTime.Today.AddDays(9))
|
2011-06-18 02:01:09 +03:00
|
|
|
.Build();
|
|
|
|
|
2012-02-12 03:02:36 +03:00
|
|
|
series = Builder<Series>.CreateNew()
|
|
|
|
.With(s => s.SeriesId = 1)
|
|
|
|
.And(c => c.Monitored = true)
|
|
|
|
.Build();
|
|
|
|
|
|
|
|
|
|
|
|
Db.InsertMany(episodes);
|
|
|
|
Db.Insert(series);
|
2011-06-18 02:01:09 +03:00
|
|
|
}
|
|
|
|
|
2012-02-12 03:02:36 +03:00
|
|
|
private void WithIgnoredEpisodes()
|
2011-06-18 02:01:09 +03:00
|
|
|
{
|
2012-02-12 03:02:36 +03:00
|
|
|
episodes.ToList().ForEach(c => c.Ignored = true);
|
|
|
|
Db.UpdateMany(episodes);
|
|
|
|
}
|
2011-06-18 02:01:09 +03:00
|
|
|
|
2012-02-12 03:02:36 +03:00
|
|
|
private void WithIgnoredSeries()
|
|
|
|
{
|
|
|
|
series.Monitored = false;
|
|
|
|
Db.Update(series);
|
|
|
|
}
|
2011-06-18 02:01:09 +03:00
|
|
|
|
2012-02-12 03:02:36 +03:00
|
|
|
[Test]
|
2012-05-18 04:23:32 +03:00
|
|
|
public void Get_UpcomingEpisodes()
|
2012-02-12 03:02:36 +03:00
|
|
|
{
|
2012-05-18 04:23:32 +03:00
|
|
|
var result = Mocker.Resolve<UpcomingEpisodesProvider>().UpcomingEpisodes();
|
2011-06-18 02:01:09 +03:00
|
|
|
|
|
|
|
//Assert
|
2012-05-18 04:23:32 +03:00
|
|
|
result.Should().HaveCount(5);
|
2012-02-12 03:02:36 +03:00
|
|
|
result.Should().OnlyContain(c => c.Series != null && c.SeriesId == series.SeriesId);
|
2011-06-18 02:01:09 +03:00
|
|
|
}
|
2011-10-04 02:53:21 +03:00
|
|
|
|
|
|
|
[Test]
|
2012-05-18 04:23:32 +03:00
|
|
|
public void Get_UpcomingEpisodes_should_skip_ingored()
|
2011-10-04 02:53:21 +03:00
|
|
|
{
|
2012-02-12 03:02:36 +03:00
|
|
|
WithIgnoredEpisodes();
|
2012-05-18 04:23:32 +03:00
|
|
|
Mocker.Resolve<UpcomingEpisodesProvider>().UpcomingEpisodes().Should().BeEmpty();
|
2012-02-12 03:02:36 +03:00
|
|
|
}
|
2011-10-04 02:53:21 +03:00
|
|
|
|
2012-02-12 03:02:36 +03:00
|
|
|
[Test]
|
2012-05-18 04:23:32 +03:00
|
|
|
public void Get_UpcomingEpisodes_should_skip_unmonitored_series()
|
2012-02-12 03:02:36 +03:00
|
|
|
{
|
|
|
|
WithIgnoredSeries();
|
2012-05-18 04:23:32 +03:00
|
|
|
Mocker.Resolve<UpcomingEpisodesProvider>().UpcomingEpisodes().Should().BeEmpty();
|
2011-10-04 02:53:21 +03:00
|
|
|
}
|
2011-06-18 02:01:09 +03:00
|
|
|
}
|
|
|
|
}
|