Naming config fixed, with integration tests
This commit is contained in:
parent
b088c2c19d
commit
4989822874
|
@ -22,10 +22,9 @@ namespace NzbDrone.Api.Config
|
|||
_namingConfigService = namingConfigService;
|
||||
_buildFileNames = buildFileNames;
|
||||
GetResourceSingle = GetNamingConfig;
|
||||
|
||||
GetResourceById = GetNamingConfig;
|
||||
UpdateResource = UpdateNamingConfig;
|
||||
|
||||
|
||||
Get["/samples"] = x => GetExamples(this.Bind<NamingConfigResource>());
|
||||
|
||||
SharedValidator.RuleFor(c => c.MultiEpisodeStyle).InclusiveBetween(0, 3);
|
||||
|
@ -35,7 +34,7 @@ namespace NzbDrone.Api.Config
|
|||
|
||||
private void UpdateNamingConfig(NamingConfigResource resource)
|
||||
{
|
||||
GetNewId<NamingConfig>(_namingConfigService.Save, resource);
|
||||
_namingConfigService.Save(resource.InjectTo<NamingConfig>());
|
||||
}
|
||||
|
||||
private NamingConfigResource GetNamingConfig()
|
||||
|
@ -43,6 +42,11 @@ namespace NzbDrone.Api.Config
|
|||
return _namingConfigService.GetConfig().InjectTo<NamingConfigResource>();
|
||||
}
|
||||
|
||||
private NamingConfigResource GetNamingConfig(int id)
|
||||
{
|
||||
return GetNamingConfig();
|
||||
}
|
||||
|
||||
private JsonResponse<NamingSampleResource> GetExamples(NamingConfigResource config)
|
||||
{
|
||||
var nameSpec = config.InjectTo<NamingConfig>();
|
||||
|
|
|
@ -21,7 +21,6 @@ namespace NzbDrone.Api
|
|||
PutValidator.RuleFor(r => r.Id).ValidId();
|
||||
}
|
||||
|
||||
|
||||
protected int GetNewId<TModel>(Func<TModel, TModel> function, TResource resource) where TModel : ModelBase, new()
|
||||
{
|
||||
var model = resource.InjectTo<TModel>();
|
||||
|
@ -35,7 +34,6 @@ namespace NzbDrone.Api
|
|||
return modelList.InjectTo<List<TResource>>();
|
||||
}
|
||||
|
||||
|
||||
protected PagingResource<TResource> ApplyToPage<TModel>(Func<PagingSpec<TModel>, PagingSpec<TModel>> function, PagingSpec<TModel> pagingSpec) where TModel : ModelBase, new()
|
||||
{
|
||||
pagingSpec = function(pagingSpec);
|
||||
|
|
|
@ -55,6 +55,12 @@ namespace NzbDrone.Integration.Test.Client
|
|||
return Get<TResource>(request, statusCode);
|
||||
}
|
||||
|
||||
public TResource GetSingle(HttpStatusCode statusCode = HttpStatusCode.OK)
|
||||
{
|
||||
var request = BuildRequest();
|
||||
return Get<TResource>(request, statusCode);
|
||||
}
|
||||
|
||||
public void Delete(int id)
|
||||
{
|
||||
var request = BuildRequest(id.ToString());
|
||||
|
|
|
@ -11,7 +11,5 @@ namespace NzbDrone.Integration.Test
|
|||
{
|
||||
Commands.Post(new CommandResource {Command = "rsssync"});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -3,7 +3,7 @@ using NLog.Config;
|
|||
using NLog.Targets;
|
||||
using NUnit.Framework;
|
||||
using NzbDrone.Api.Commands;
|
||||
using NzbDrone.Api.Episodes;
|
||||
using NzbDrone.Api.Config;
|
||||
using NzbDrone.Api.RootFolders;
|
||||
using NzbDrone.Common.EnvironmentInfo;
|
||||
using NzbDrone.Integration.Test.Client;
|
||||
|
@ -25,10 +25,10 @@ namespace NzbDrone.Integration.Test
|
|||
protected IndexerClient Indexers;
|
||||
protected EpisodeClient Episodes;
|
||||
protected SeasonClient Seasons;
|
||||
protected ClientBase<NamingConfigResource> NamingConfig;
|
||||
|
||||
private NzbDroneRunner _runner;
|
||||
|
||||
|
||||
public IntegrationTest()
|
||||
{
|
||||
new StartupArguments();
|
||||
|
@ -42,7 +42,6 @@ namespace NzbDrone.Integration.Test
|
|||
[SetUp]
|
||||
public void SmokeTestSetup()
|
||||
{
|
||||
|
||||
_runner = new NzbDroneRunner();
|
||||
_runner.KillAll();
|
||||
|
||||
|
@ -51,7 +50,6 @@ namespace NzbDrone.Integration.Test
|
|||
_runner.Start();
|
||||
}
|
||||
|
||||
|
||||
private void InitRestClients()
|
||||
{
|
||||
RestClient = new RestClient("http://localhost:8989/api");
|
||||
|
@ -62,6 +60,7 @@ namespace NzbDrone.Integration.Test
|
|||
Indexers = new IndexerClient(RestClient);
|
||||
Episodes = new EpisodeClient(RestClient);
|
||||
Seasons = new SeasonClient(RestClient);
|
||||
NamingConfig = new ClientBase<NamingConfigResource>(RestClient, "config/naming");
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using FluentAssertions;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace NzbDrone.Integration.Test
|
||||
{
|
||||
[TestFixture]
|
||||
public class NamingConfigTests : IntegrationTest
|
||||
{
|
||||
|
||||
[Test]
|
||||
public void should_be_able_to_get()
|
||||
{
|
||||
NamingConfig.GetSingle().Should().NotBeNull();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_be_able_to_get_by_id()
|
||||
{
|
||||
var config = NamingConfig.GetSingle();
|
||||
NamingConfig.Get(config.Id).Should().NotBeNull();
|
||||
NamingConfig.Get(config.Id).Id.Should().Be(config.Id);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_be_able_to_update()
|
||||
{
|
||||
var config = NamingConfig.GetSingle();
|
||||
config.RenameEpisodes = false;
|
||||
|
||||
NamingConfig.Put(config).RenameEpisodes.Should().BeFalse();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -99,6 +99,7 @@
|
|||
<Compile Include="Client\ReleaseClient.cs" />
|
||||
<Compile Include="Client\SeriesClient.cs" />
|
||||
<Compile Include="CommandIntegerationTests.cs" />
|
||||
<Compile Include="NamingConfigTests.cs" />
|
||||
<Compile Include="SeasonIntegrationTests.cs" />
|
||||
<Compile Include="EpisodeIntegrationTests.cs" />
|
||||
<Compile Include="IndexerIntegrationFixture.cs" />
|
||||
|
|
Loading…
Reference in New Issue