added more tests for seriesprovider
This commit is contained in:
parent
b21bdbe41f
commit
8a3fe0f14e
|
@ -12,6 +12,7 @@ using Ninject;
|
||||||
using Ninject.Moq;
|
using Ninject.Moq;
|
||||||
using NzbDrone.Core.Providers;
|
using NzbDrone.Core.Providers;
|
||||||
using NzbDrone.Core.Repository;
|
using NzbDrone.Core.Repository;
|
||||||
|
using NzbDrone.Core.Repository.Quality;
|
||||||
using SubSonic.Repository;
|
using SubSonic.Repository;
|
||||||
using TvdbLib.Data;
|
using TvdbLib.Data;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
@ -96,26 +97,69 @@ namespace NzbDrone.Core.Test
|
||||||
//Assert.AreEqual(title, result, postTitle);
|
//Assert.AreEqual(title, result, postTitle);
|
||||||
}
|
}
|
||||||
|
|
||||||
//[Test]
|
[Test]
|
||||||
//public void get_unmapped()
|
public void Test_is_monitored()
|
||||||
//{
|
{
|
||||||
// //Setup
|
var kernel = new MockingKernel();
|
||||||
// var kernel = new MockingKernel();
|
var repo = MockLib.GetEmptyRepository();
|
||||||
|
kernel.Bind<IRepository>().ToConstant(repo);
|
||||||
|
kernel.Bind<ISeriesProvider>().To<SeriesProvider>();
|
||||||
|
|
||||||
|
repo.Add(Builder<Series>.CreateNew()
|
||||||
|
.With(c => c.Monitored = true)
|
||||||
|
.With(c => c.SeriesId = 12)
|
||||||
|
.Build());
|
||||||
|
|
||||||
|
repo.Add(Builder<Series>.CreateNew()
|
||||||
|
.With(c => c.Monitored = false)
|
||||||
|
.With(c => c.SeriesId = 11)
|
||||||
|
.Build());
|
||||||
|
|
||||||
|
|
||||||
// kernel.Bind<ISeriesProvider>().To<SeriesProvider>();
|
//Act, Assert
|
||||||
// kernel.Bind<IDiskProvider>().ToConstant(MockLib.GetStandardDisk(0, 0));
|
var provider = kernel.Get<ISeriesProvider>();
|
||||||
// kernel.Bind<IConfigProvider>().ToConstant(MockLib.StandardConfig);
|
Assert.IsTrue(provider.IsMonitored(12));
|
||||||
|
Assert.IsFalse(provider.IsMonitored(11));
|
||||||
// var seriesController = kernel.Get<ISeriesProvider>();
|
Assert.IsFalse(provider.IsMonitored(1));
|
||||||
|
}
|
||||||
// //Act
|
|
||||||
// var unmappedFolder = seriesController.GetUnmappedFolders();
|
|
||||||
|
|
||||||
// //Assert
|
|
||||||
// Assert.AreElementsEqualIgnoringOrder(MockLib.StandardSeries, unmappedFolder.Values);
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
[Row(12, QualityTypes.TV, true)]
|
||||||
|
[Row(12, QualityTypes.Unknown, false)]
|
||||||
|
[Row(12, QualityTypes.Bluray1080, false)]
|
||||||
|
[Row(12, QualityTypes.Bluray720, false)]
|
||||||
|
[Row(12, QualityTypes.HDTV, false)]
|
||||||
|
[Row(12, QualityTypes.WEBDL, false)]
|
||||||
|
public void QualityWanted(int seriesId, QualityTypes qualityTypes, Boolean result)
|
||||||
|
{
|
||||||
|
var kernel = new MockingKernel();
|
||||||
|
var repo = MockLib.GetEmptyRepository();
|
||||||
|
kernel.Bind<IRepository>().ToConstant(repo);
|
||||||
|
kernel.Bind<ISeriesProvider>().To<SeriesProvider>();
|
||||||
|
|
||||||
|
var quality = Builder<QualityProfile>.CreateNew()
|
||||||
|
.With(q => q.Allowed = new List<QualityTypes>() { QualityTypes.BDRip, QualityTypes.DVD, QualityTypes.TV })
|
||||||
|
.With(q => q.Cutoff = QualityTypes.DVD)
|
||||||
|
.Build();
|
||||||
|
|
||||||
|
var qualityProviderMock = new Mock<IQualityProvider>();
|
||||||
|
qualityProviderMock.Setup(c => c.Find(quality.QualityProfileId)).Returns(quality).Verifiable();
|
||||||
|
kernel.Bind<IQualityProvider>().ToConstant(qualityProviderMock.Object);
|
||||||
|
|
||||||
|
|
||||||
|
repo.Add(Builder<Series>.CreateNew()
|
||||||
|
.With(c => c.SeriesId = 12)
|
||||||
|
.With(c => c.QualityProfileId = quality.QualityProfileId)
|
||||||
|
.Build());
|
||||||
|
|
||||||
|
//Act
|
||||||
|
var needed = kernel.Get<ISeriesProvider>().QualityWanted(seriesId, qualityTypes);
|
||||||
|
|
||||||
|
Assert.AreEqual(result, needed);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,7 +91,7 @@
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<CodeAnalysisLogFile>bin\Debug\SABSync.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
<CodeAnalysisLogFile>bin\Debug\SABSync.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using System.Xml;
|
||||||
using NLog;
|
using NLog;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Providers.Core
|
namespace NzbDrone.Core.Providers.Core
|
||||||
|
@ -40,39 +41,43 @@ namespace NzbDrone.Core.Providers.Core
|
||||||
return String.Empty;
|
return String.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool DownloadFile(string request, string filename)
|
public void DownloadFile(string request, string filename)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var webClient = new WebClient();
|
var webClient = new WebClient();
|
||||||
webClient.DownloadFile(request, filename);
|
webClient.DownloadFile(request, filename);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.Warn("Failed to get response from: {0}", request);
|
Logger.Warn("Failed to get response from: {0}", request);
|
||||||
Logger.TraceException(ex.Message, ex);
|
Logger.TraceException(ex.Message, ex);
|
||||||
|
throw;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool DownloadFile(string request, string filename, string username, string password)
|
public void DownloadFile(string request, string filename, string username, string password)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var webClient = new WebClient();
|
var webClient = new WebClient();
|
||||||
webClient.Credentials = new NetworkCredential(username, password);
|
webClient.Credentials = new NetworkCredential(username, password);
|
||||||
webClient.DownloadFile(request, filename);
|
webClient.DownloadFile(request, filename);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.Warn("Failed to get response from: {0}", request);
|
Logger.Warn("Failed to get response from: {0}", request);
|
||||||
Logger.TraceException(ex.Message, ex);
|
Logger.TraceException(ex.Message, ex);
|
||||||
|
throw;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
public XmlReader DownloadXml(string url)
|
||||||
|
{
|
||||||
|
return XmlReader.Create(url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,10 +1,13 @@
|
||||||
namespace NzbDrone.Core.Providers.Core
|
using System.Xml;
|
||||||
|
|
||||||
|
namespace NzbDrone.Core.Providers.Core
|
||||||
{
|
{
|
||||||
public interface IHttpProvider
|
public interface IHttpProvider
|
||||||
{
|
{
|
||||||
string DownloadString(string request);
|
string DownloadString(string request);
|
||||||
string DownloadString(string request, string username, string password);
|
string DownloadString(string request, string username, string password);
|
||||||
bool DownloadFile(string request, string filename);
|
void DownloadFile(string request, string filename);
|
||||||
bool DownloadFile(string request, string filename, string username, string password);
|
void DownloadFile(string request, string filename, string username, string password);
|
||||||
|
XmlReader DownloadXml(string url);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -12,14 +12,17 @@ namespace NzbDrone.Core.Providers.Feed
|
||||||
protected readonly ISeasonProvider _seasonProvider;
|
protected readonly ISeasonProvider _seasonProvider;
|
||||||
protected readonly IEpisodeProvider _episodeProvider;
|
protected readonly IEpisodeProvider _episodeProvider;
|
||||||
protected readonly IConfigProvider _configProvider;
|
protected readonly IConfigProvider _configProvider;
|
||||||
|
private readonly IHttpProvider _httpProvider;
|
||||||
protected static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
protected static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
||||||
|
|
||||||
protected FeedProviderBase(ISeriesProvider seriesProvider, ISeasonProvider seasonProvider, IEpisodeProvider episodeProvider, IConfigProvider configProvider)
|
protected FeedProviderBase(ISeriesProvider seriesProvider, ISeasonProvider seasonProvider,
|
||||||
|
IEpisodeProvider episodeProvider, IConfigProvider configProvider, IHttpProvider httpProvider)
|
||||||
{
|
{
|
||||||
_seriesProvider = seriesProvider;
|
_seriesProvider = seriesProvider;
|
||||||
_seasonProvider = seasonProvider;
|
_seasonProvider = seasonProvider;
|
||||||
_episodeProvider = episodeProvider;
|
_episodeProvider = episodeProvider;
|
||||||
_configProvider = configProvider;
|
_configProvider = configProvider;
|
||||||
|
_httpProvider = httpProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,7 +79,7 @@ namespace NzbDrone.Core.Providers.Feed
|
||||||
foreach (var url in URL)
|
foreach (var url in URL)
|
||||||
{
|
{
|
||||||
Logger.Debug("Downloading RSS " + url);
|
Logger.Debug("Downloading RSS " + url);
|
||||||
var feed = SyndicationFeed.Load(XmlReader.Create(url)).Items;
|
var feed = SyndicationFeed.Load(_httpProvider.DownloadXml(url)).Items;
|
||||||
|
|
||||||
foreach (var item in feed)
|
foreach (var item in feed)
|
||||||
{
|
{
|
||||||
|
|
|
@ -9,8 +9,7 @@ namespace NzbDrone.Core.Providers.Feed
|
||||||
{
|
{
|
||||||
class NzbsOrgFeedProvider : FeedProviderBase
|
class NzbsOrgFeedProvider : FeedProviderBase
|
||||||
{
|
{
|
||||||
public NzbsOrgFeedProvider(ISeriesProvider seriesProvider, ISeasonProvider seasonProvider, IEpisodeProvider episodeProvider, IConfigProvider configProvider)
|
public NzbsOrgFeedProvider(ISeriesProvider seriesProvider, ISeasonProvider seasonProvider, IEpisodeProvider episodeProvider, IConfigProvider configProvider, IHttpProvider httpProvider) : base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider)
|
||||||
: base(seriesProvider, seasonProvider, episodeProvider, configProvider)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -59,8 +59,8 @@ namespace NzbDrone.Core.Providers
|
||||||
public bool QualityWanted(int seriesId, QualityTypes quality)
|
public bool QualityWanted(int seriesId, QualityTypes quality)
|
||||||
{
|
{
|
||||||
var series = _sonioRepo.Single<Series>(seriesId);
|
var series = _sonioRepo.Single<Series>(seriesId);
|
||||||
var profile = _quality.Find(series.QualityProfileId);
|
|
||||||
|
|
||||||
|
var profile = _quality.Find(series.QualityProfileId);
|
||||||
return profile.Allowed.Contains(quality);
|
return profile.Allowed.Contains(quality);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,8 @@ namespace NzbDrone.Core.Repository.Quality
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
string result = String.Empty;
|
string result = String.Empty;
|
||||||
|
if (Allowed == null) return result;
|
||||||
|
|
||||||
foreach (var q in Allowed)
|
foreach (var q in Allowed)
|
||||||
{
|
{
|
||||||
result += (int)q + "|";
|
result += (int)q + "|";
|
||||||
|
|
|
@ -121,7 +121,7 @@ namespace NzbDrone.Web.Controllers
|
||||||
var dataVal = _tvDbProvider.SearchSeries(searchString);
|
var dataVal = _tvDbProvider.SearchSeries(searchString);
|
||||||
var bestResult = _tvDbProvider.GetBestMatch(dataVal.ToList(), searchString);
|
var bestResult = _tvDbProvider.GetBestMatch(dataVal.ToList(), searchString);
|
||||||
|
|
||||||
return new SelectList(dataVal, "Id", "SeriesName", bestResult);
|
return new SelectList(dataVal, "Id", "SeriesName", dataVal[0].Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
.HighlightFirstMatch(true)
|
.HighlightFirstMatch(true)
|
||||||
.HtmlAttributes(new { style = "width: 300px;" })
|
.HtmlAttributes(new { style = "width: 300px;" })
|
||||||
.Render();}
|
.Render();}
|
||||||
@Html.Telerik().DropDownList().Name("qualityList_" + ViewData["guid"].ToString()).BindTo((SelectList)ViewData["quality"]).HtmlAttributes(new { style = "width: 100px;" })
|
@Html.Telerik().DropDownList().Name("qualityList_" + ViewData["guid"].ToString()).BindTo((SelectList)ViewData["quality"]).HtmlAttributes(new { style = "width: 100px;" }).SelectedIndex(0)
|
||||||
<button class="listButton" onclick="addSeries('@ViewData["guid"]','@ViewData["javaPath"].ToString()' )">
|
<button class="listButton" onclick="addSeries('@ViewData["guid"]','@ViewData["javaPath"].ToString()' )">
|
||||||
Add</button>
|
Add</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue