mirror of
https://github.com/Radarr/Radarr.git
synced 2024-08-16 23:39:44 +02:00
fixed few more broken tests.
This commit is contained in:
parent
eaff6dc18f
commit
2008b54f5d
@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.ServiceModel.Syndication;
|
||||
@ -13,12 +12,10 @@
|
||||
using NzbDrone.Core.Configuration;
|
||||
using NzbDrone.Core.Indexers;
|
||||
using NzbDrone.Core.Model;
|
||||
using NzbDrone.Core.Providers;
|
||||
using NzbDrone.Core.Qualities;
|
||||
|
||||
using NzbDrone.Core.Test.Framework;
|
||||
using NzbDrone.Core.Test.Indexers;
|
||||
using NzbDrone.Core.Test.ProviderTests;
|
||||
using NzbDrone.Test.Common;
|
||||
|
||||
namespace NzbDrone.Core.Test.IndexerTests
|
||||
|
@ -4,6 +4,7 @@
|
||||
using FluentAssertions;
|
||||
using NLog;
|
||||
using NUnit.Framework;
|
||||
using NzbDrone.Core.Datastore;
|
||||
using NzbDrone.Core.MediaFiles;
|
||||
using NzbDrone.Core.Tv;
|
||||
using NzbDrone.Core.Instrumentation;
|
||||
|
@ -9,6 +9,8 @@
|
||||
using NzbDrone.Core.Configuration;
|
||||
using NzbDrone.Core.ReferenceData;
|
||||
using NzbDrone.Core.Test.Framework;
|
||||
using NzbDrone.Core.Test.TvTests;
|
||||
using NzbDrone.Test.Common;
|
||||
|
||||
namespace NzbDrone.Core.Test.ProviderTests
|
||||
{
|
||||
@ -50,7 +52,7 @@ public void GetSceneName_exists()
|
||||
.With(f => f.TvdbId = 12345)
|
||||
.With(f => f.SceneName = "Law and Order")
|
||||
.With(f => f.SeasonNumber = -1)
|
||||
.Build();
|
||||
.BuildNew<SceneMapping>();
|
||||
|
||||
Db.Insert(fakeMap);
|
||||
|
||||
|
@ -1,138 +1,61 @@
|
||||
// ReSharper disable RedundantUsingDirective
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using FizzWare.NBuilder;
|
||||
using FluentAssertions;
|
||||
using NUnit.Framework;
|
||||
using NzbDrone.Core.Tv;
|
||||
using NzbDrone.Core.Test.Framework;
|
||||
using NzbDrone.Test.Common;
|
||||
|
||||
namespace NzbDrone.Core.Test.TvTests
|
||||
{
|
||||
[TestFixture]
|
||||
// ReSharper disable InconsistentNaming
|
||||
public class SeasonProviderTest : DbTest
|
||||
public class SeasonProviderTest : DbTest<SeasonRepository, Season>
|
||||
{
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
[TestCase(true)]
|
||||
[TestCase(false)]
|
||||
public void IsIgnored_should_return_ignored_status_of_season(bool ignoreFlag)
|
||||
{
|
||||
//Setup
|
||||
var fakeSeason = Builder<Season>.CreateNew()
|
||||
.With(s => s.Ignored = ignoreFlag)
|
||||
.Build();
|
||||
.With(s => s.Ignored = ignoreFlag)
|
||||
.BuildNew<Season>();
|
||||
|
||||
Db.Insert(fakeSeason);
|
||||
|
||||
//Act
|
||||
var result = Mocker.Resolve<SeasonRepository>().IsIgnored(fakeSeason.SeriesId, fakeSeason.SeasonNumber);
|
||||
var result = Subject.IsIgnored(fakeSeason.SeriesId, fakeSeason.SeasonNumber);
|
||||
|
||||
//Assert
|
||||
result.Should().Be(ignoreFlag);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void IsIgnored_should_throw_an_exception_if_not_in_db()
|
||||
public void IsIgnored_should_return_false_if_not_in_db()
|
||||
{
|
||||
Assert.Throws<InvalidOperationException>(() => Mocker.Resolve<SeasonRepository>().IsIgnored(10, 0));
|
||||
Subject.IsIgnored(10, 0).Should().BeFalse();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void All_should_return_seasons_with_episodes()
|
||||
{
|
||||
const int seriesId = 10;
|
||||
|
||||
var season = Builder<Season>.CreateNew()
|
||||
.With(s => s.SeriesId = seriesId)
|
||||
.With(s => s.SeasonNumber = 4)
|
||||
.With(s => s.Ignored = true)
|
||||
.Build();
|
||||
|
||||
var episodes = Builder<Episode>.CreateListOfSize(10)
|
||||
.All()
|
||||
.With(e => e.SeriesId = seriesId)
|
||||
.With(e => e.SeasonNumber = season.SeasonNumber)
|
||||
.Build();
|
||||
|
||||
Db.Insert(season);
|
||||
Db.InsertMany(episodes);
|
||||
|
||||
//Act
|
||||
var result = Mocker.Resolve<SeasonRepository>().GetSeasonBySeries(seriesId);
|
||||
|
||||
//Assert
|
||||
result.Should().HaveCount(1);
|
||||
result.First().Episodes.Should().HaveCount(episodes.Count);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void All_should_return_all_seasons_with_episodes()
|
||||
{
|
||||
const int seriesId = 10;
|
||||
|
||||
//Setup
|
||||
|
||||
|
||||
var seasons = Builder<Season>.CreateListOfSize(5)
|
||||
.All()
|
||||
.With(s => s.SeriesId = seriesId)
|
||||
.Build();
|
||||
|
||||
var episodes = new List<Episode>();
|
||||
|
||||
for (int i = 0; i < seasons.Count; i++)
|
||||
{
|
||||
var newEps = Builder<Episode>.CreateListOfSize(2)
|
||||
.All()
|
||||
.With(e => e.SeriesId = seriesId)
|
||||
.With(e => e.SeasonNumber = i + 1)
|
||||
.Build();
|
||||
|
||||
episodes.AddRange(newEps);
|
||||
}
|
||||
|
||||
Db.InsertMany(seasons);
|
||||
Db.InsertMany(episodes);
|
||||
|
||||
//Act
|
||||
var result = Mocker.Resolve<SeasonRepository>().GetSeasonBySeries(seriesId);
|
||||
|
||||
//Assert
|
||||
result.Should().HaveCount(5);
|
||||
|
||||
foreach (var season in result)
|
||||
{
|
||||
season.Episodes.Count.Should().Be(2);
|
||||
season.Episodes.Should().OnlyContain(c => c.SeasonNumber == season.SeasonNumber);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
[Test]
|
||||
public void GetSeason_should_return_seasons_for_specified_series_only()
|
||||
{
|
||||
var seriesA = new[] { 1, 2, 3 };
|
||||
var seriesB = new[] { 4, 5, 6 };
|
||||
|
||||
Mocker.Resolve<SeasonRepository>().GetSeasonNumbers(1).Should().Equal(seriesA);
|
||||
Mocker.Resolve<SeasonRepository>().GetSeasonNumbers(2).Should().Equal(seriesB);
|
||||
var seasonsA = seriesA.Select(c => new Season {SeasonNumber = c, SeriesId = 1}).ToList();
|
||||
var seasonsB = seriesB.Select(c => new Season {SeasonNumber = c, SeriesId = 2}).ToList();
|
||||
|
||||
Subject.InsertMany(seasonsA);
|
||||
Subject.InsertMany(seasonsB);
|
||||
|
||||
Subject.GetSeasonNumbers(1).Should().Equal(seriesA);
|
||||
Subject.GetSeasonNumbers(2).Should().Equal(seriesB);
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public void GetSeason_should_return_emptylist_if_series_doesnt_exist()
|
||||
{
|
||||
Mocker.Resolve<SeasonRepository>().GetSeasonNumbers(1).Should().BeEmpty();
|
||||
Subject.GetSeasonNumbers(1).Should().BeEmpty();
|
||||
}
|
||||
|
||||
}
|
||||
|
Binary file not shown.
@ -15,7 +15,6 @@ public class Log : ModelBase
|
||||
|
||||
public string Method { get; set; }
|
||||
|
||||
|
||||
public string Exception { get; set; }
|
||||
|
||||
public string ExceptionType { get; set; }
|
||||
|
@ -25,7 +25,7 @@ public SeasonRepository(IDatabase database)
|
||||
|
||||
public IList<int> GetSeasonNumbers(int seriesId)
|
||||
{
|
||||
return Query.Where(c => c.SeriesId == seriesId).Select(c => c.SeriesId).ToList();
|
||||
return Query.Where(c => c.SeriesId == seriesId).Select(c => c.SeasonNumber).ToList();
|
||||
}
|
||||
|
||||
public Season Get(int seriesId, int seasonNumber)
|
||||
|
@ -34,14 +34,14 @@ public class SeriesService : ISeriesService
|
||||
private readonly TvRageMappingProvider _tvRageMappingProvider;
|
||||
private readonly IEventAggregator _eventAggregator;
|
||||
private readonly IQualityProfileService _qualityProfileService;
|
||||
private readonly Logger _logger;
|
||||
|
||||
private static readonly Logger logger = LogManager.GetCurrentClassLogger();
|
||||
|
||||
private readonly SceneMappingService _sceneNameMappingService;
|
||||
private readonly ISceneMappingService _sceneNameMappingService;
|
||||
|
||||
public SeriesService(ISeriesRepository seriesRepository, IConfigService configServiceService,
|
||||
TvDbProxy tvDbProxyProxy, SceneMappingService sceneNameMappingService,
|
||||
TvRageMappingProvider tvRageMappingProvider, IEventAggregator eventAggregator, IQualityProfileService qualityProfileService)
|
||||
TvDbProxy tvDbProxyProxy, ISceneMappingService sceneNameMappingService,
|
||||
TvRageMappingProvider tvRageMappingProvider, IEventAggregator eventAggregator, IQualityProfileService qualityProfileService, Logger logger)
|
||||
{
|
||||
_seriesRepository = seriesRepository;
|
||||
_configService = configServiceService;
|
||||
@ -50,6 +50,7 @@ public SeriesService(ISeriesRepository seriesRepository, IConfigService configSe
|
||||
_tvRageMappingProvider = tvRageMappingProvider;
|
||||
_eventAggregator = eventAggregator;
|
||||
_qualityProfileService = qualityProfileService;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
|
||||
@ -84,7 +85,7 @@ public Series UpdateSeriesInfo(int seriesId)
|
||||
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.ErrorException("Error getting TvRage information for series: " + series.Title, ex);
|
||||
_logger.ErrorException("Error getting TvRage information for series: " + series.Title, ex);
|
||||
}
|
||||
|
||||
_seriesRepository.Update(series);
|
||||
@ -110,7 +111,7 @@ public Series FindSeries(string title)
|
||||
|
||||
public void AddSeries(string title, string path, int tvDbSeriesId, int qualityProfileId, DateTime? airedAfter)
|
||||
{
|
||||
logger.Info("Adding Series [{0}] Path: [{1}]", tvDbSeriesId, path);
|
||||
_logger.Info("Adding Series [{0}] Path: [{1}]", tvDbSeriesId, path);
|
||||
|
||||
Ensure.That(() => tvDbSeriesId).IsGreaterThan(0);
|
||||
Ensure.That(() => title).IsNotNullOrWhiteSpace();
|
||||
|
26
NzbDrone.Test.Common/NBuilderExtensions.cs
Normal file
26
NzbDrone.Test.Common/NBuilderExtensions.cs
Normal file
@ -0,0 +1,26 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using FizzWare.NBuilder;
|
||||
using NzbDrone.Core.Datastore;
|
||||
|
||||
namespace NzbDrone.Test.Common
|
||||
{
|
||||
public static class NBuilderExtensions
|
||||
{
|
||||
public static T BuildNew<T>(this ISingleObjectBuilder<T> builder) where T : ModelBase, new()
|
||||
{
|
||||
return builder.With(c => c.Id = 0).Build();
|
||||
}
|
||||
|
||||
public static List<T> BuildList<T>(this IOperable<T> builder) where T : ModelBase, new()
|
||||
{
|
||||
return builder.Build().ToList();
|
||||
}
|
||||
|
||||
public static List<T> BuildListOfNew<T>(this IOperable<T> builder) where T : ModelBase, new()
|
||||
{
|
||||
return BuildList<T>(builder.All().With(c => c.Id = 0));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -53,6 +53,9 @@
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="FizzWare.NBuilder">
|
||||
<HintPath>..\packages\NBuilder.3.0.1.1\lib\FizzWare.NBuilder.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Practices.ServiceLocation">
|
||||
<HintPath>..\packages\CommonServiceLocator.1.0\lib\NET35\Microsoft.Practices.ServiceLocation.dll</HintPath>
|
||||
</Reference>
|
||||
@ -89,6 +92,7 @@
|
||||
<Compile Include="ExceptionVerification.cs" />
|
||||
<Compile Include="LoggingTest.cs" />
|
||||
<Compile Include="MockerExtensions.cs" />
|
||||
<Compile Include="NBuilderExtensions.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="ReflectionExtensions.cs" />
|
||||
<Compile Include="TestBase.cs" />
|
||||
@ -104,6 +108,10 @@
|
||||
<Project>{F2BE0FDF-6E47-4827-A420-DD4EF82407F8}</Project>
|
||||
<Name>NzbDrone.Common</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\NzbDrone.Core\NzbDrone.Core.csproj">
|
||||
<Project>{FF5EE3B6-913B-47CE-9CEB-11C51B4E1205}</Project>
|
||||
<Name>NzbDrone.Core</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
|
||||
|
@ -2,6 +2,7 @@
|
||||
<packages>
|
||||
<package id="CommonServiceLocator" version="1.0" />
|
||||
<package id="Moq" version="4.0.10827" />
|
||||
<package id="NBuilder" version="3.0.1.1" targetFramework="net40" />
|
||||
<package id="NLog" version="2.0.0.2000" />
|
||||
<package id="NUnit" version="2.6.2" targetFramework="net40" />
|
||||
<package id="Unity" version="2.1.505.2" targetFramework="net40" />
|
||||
|
@ -2,6 +2,7 @@
|
||||
<FileVersion>1</FileVersion>
|
||||
<AutoEnableOnStartup>True</AutoEnableOnStartup>
|
||||
<AllowParallelTestExecution>true</AllowParallelTestExecution>
|
||||
<AllowTestsToRunInParallelWithThemselves>true</AllowTestsToRunInParallelWithThemselves>
|
||||
<FrameworkUtilisationTypeForNUnit>UseDynamicAnalysis</FrameworkUtilisationTypeForNUnit>
|
||||
<FrameworkUtilisationTypeForGallio>Disabled</FrameworkUtilisationTypeForGallio>
|
||||
<FrameworkUtilisationTypeForMSpec>Disabled</FrameworkUtilisationTypeForMSpec>
|
||||
|
Loading…
Reference in New Issue
Block a user