@ -17,7 +17,16 @@ namespace NzbDrone.Core.Test.TvTests
public void Setup ( )
{
_series = Builder < Series > . CreateNew ( )
. With ( v = > v . Status = = SeriesStatusType . Continuing )
. Build ( ) ;
Mocker . GetMock < IEpisodeService > ( )
. Setup ( s = > s . GetEpisodeBySeries ( _series . Id ) )
. Returns ( Builder < Episode > . CreateListOfSize ( 2 )
. All ( )
. With ( e = > e . AirDateUtc = DateTime . Today . AddDays ( - 100 ) )
. Build ( )
. ToList ( ) ) ;
}
private void GivenSeriesIsEnded ( )
@ -25,30 +34,22 @@ namespace NzbDrone.Core.Test.TvTests
_series . Status = SeriesStatusType . Ended ;
}
private void GivenSeriesLastRefreshed Recently ( )
private void GivenSeriesLastRefreshed MonthsAgo ( )
{
_series . LastInfoSync = DateTime . UtcNow . AddDays ( - 1 ) ;
_series . LastInfoSync = DateTime . UtcNow . AddDays ( - 90 ) ;
}
[Test]
public void should_return_true_if_series_is_continuing ( )
private void GivenSeriesLastRefreshedYesterday ( )
{
_series . Status = SeriesStatusType . Continuing ;
Subject . ShouldRefresh ( _series ) . Should ( ) . BeTrue ( ) ;
_series . LastInfoSync = DateTime . UtcNow . AddDays ( - 1 ) ;
}
[Test]
public void should_return_true_if_series_last_refreshed_more_than_30_days_ago ( )
private void GivenSeriesLastRefreshedRecently ( )
{
GivenSeriesIsEnded ( ) ;
_series . LastInfoSync = DateTime . UtcNow . AddDays ( - 100 ) ;
Subject . ShouldRefresh ( _series ) . Should ( ) . BeTrue ( ) ;
_series . LastInfoSync = DateTime . UtcNow . AddHours ( - 1 ) ;
}
[Test]
public void should_should_return_true_if_episode_aired_in_last_30_days ( )
private void GivenRecentlyAired ( )
{
Mocker . GetMock < IEpisodeService > ( )
. Setup ( s = > s . GetEpisodeBySeries ( _series . Id ) )
@ -59,22 +60,69 @@ namespace NzbDrone.Core.Test.TvTests
. With ( e = > e . AirDateUtc = DateTime . Today . AddDays ( - 100 ) )
. Build ( )
. ToList ( ) ) ;
}
[Test]
public void should_return_true_if_running_series_last_refreshed_more_than_6_hours_ago ( )
{
Subject . ShouldRefresh ( _series ) . Should ( ) . BeTrue ( ) ;
}
[Test]
public void should_ should_return_false_when_recently_refreshed_ended_show_has_not_aired_for_30_days ( )
public void should_ return_false_if_running_series_last_refreshed_less_than_6_hours_ago ( )
{
Mocker . GetMock < IEpisodeService > ( )
. Setup ( s = > s . GetEpisodeBySeries ( _series . Id ) )
. Returns ( Builder < Episode > . CreateListOfSize ( 2 )
. All ( )
. With ( e = > e . AirDateUtc = DateTime . Today . AddDays ( - 100 ) )
. Build ( )
. ToList ( ) ) ;
GivenSeriesLastRefreshedRecently ( ) ;
Subject . ShouldRefresh ( _series ) . Should ( ) . BeFalse ( ) ;
}
[Test]
public void should_return_false_if_ended_series_last_refreshed_yesterday ( )
{
GivenSeriesIsEnded ( ) ;
GivenSeriesLastRefreshedYesterday ( ) ;
Subject . ShouldRefresh ( _series ) . Should ( ) . BeFalse ( ) ;
}
[Test]
public void should_return_true_if_series_last_refreshed_more_than_30_days_ago ( )
{
GivenSeriesIsEnded ( ) ;
GivenSeriesLastRefreshedMonthsAgo ( ) ;
Subject . ShouldRefresh ( _series ) . Should ( ) . BeTrue ( ) ;
}
[Test]
public void should_return_true_if_episode_aired_in_last_30_days ( )
{
GivenSeriesIsEnded ( ) ;
GivenSeriesLastRefreshedYesterday ( ) ;
GivenRecentlyAired ( ) ;
Subject . ShouldRefresh ( _series ) . Should ( ) . BeTrue ( ) ;
}
[Test]
public void should_return_false_when_recently_refreshed_ended_show_has_not_aired_for_30_days ( )
{
GivenSeriesIsEnded ( ) ;
GivenSeriesLastRefreshedYesterday ( ) ;
Subject . ShouldRefresh ( _series ) . Should ( ) . BeFalse ( ) ;
}
[Test]
public void should_return_false_when_recently_refreshed_ended_show_aired_in_last_30_days ( )
{
GivenSeriesIsEnded ( ) ;
GivenSeriesLastRefreshedRecently ( ) ;
GivenRecentlyAired ( ) ;
Subject . ShouldRefresh ( _series ) . Should ( ) . BeFalse ( ) ;
}
}
}