using System ;
using System.Collections.Generic ;
using System.Linq ;
using FizzWare.NBuilder ;
using NUnit.Framework ;
using NzbDrone.Core.Jobs.Implementations ;
using NzbDrone.Core.MediaFiles ;
using NzbDrone.Core.Tv ;
using NzbDrone.Core.Model.Notification ;
using NzbDrone.Test.Common ;
namespace NzbDrone.Core.Test.JobTests
{
[TestFixture]
public class RenameSeasonJobFixture : TestBase
{
private ProgressNotification _testNotification ;
private Series _series ;
private IList < EpisodeFile > _episodeFiles ;
[SetUp]
public void Setup ( )
{
_testNotification = new ProgressNotification ( "TEST" ) ;
_series = Builder < Series >
. CreateNew ( )
. Build ( ) ;
_episodeFiles = Builder < EpisodeFile >
. CreateListOfSize ( 5 )
. All ( )
. With ( e = > e . SeasonNumber = 5 )
. Build ( ) ;
Mocker . GetMock < ISeriesRepository > ( )
. Setup ( s = > s . Get ( _series . Id ) )
. Returns ( _series ) ;
Mocker . GetMock < IMediaFileService > ( )
. Setup ( s = > s . GetFilesBySeason ( _series . Id , 5 ) )
. Returns ( _episodeFiles . ToList ( ) ) ;
}
[Test]
public void should_throw_if_seriesId_is_zero ( )
{
Assert . Throws < ArgumentException > ( ( ) = >
Mocker . Resolve < RenameSeasonJob > ( ) . Start ( _testNotification , new { SeriesId = 0 , SeasonNumber = 10 } ) ) ;
}
[Test]
public void should_throw_if_seasonId_is_less_than_zero ( )
{
Assert . Throws < ArgumentException > ( ( ) = >
Mocker . Resolve < RenameSeasonJob > ( ) . Start ( _testNotification , new { SeriesId = _series . Id , SeasonNumber = - 10 } ) ) ;
}
[Test]
public void should_log_warning_if_no_episode_files_are_found ( )
{
Mocker . Resolve < RenameSeasonJob > ( ) . Start ( _testNotification , new { SeriesId = _series . Id , SeasonNumber = 10 } ) ;
ExceptionVerification . ExpectedWarns ( 1 ) ;
}
}
}