Fixed: Issue saving notifications

This commit is contained in:
Mark McDowall 2013-12-19 00:38:28 -08:00
parent fb6e365c1a
commit 36a5eea951
5 changed files with 69 additions and 1 deletions

View File

@ -77,7 +77,7 @@ namespace NzbDrone.Api.ClientSchema
propertyInfo.SetValue(target, value, null);
}
if (propertyInfo.PropertyType == typeof(Int64))
else if (propertyInfo.PropertyType == typeof(Int64))
{
var value = Convert.ToInt64(field.Value);
propertyInfo.SetValue(target, value, null);

View File

@ -0,0 +1,21 @@
using System.Collections.Generic;
using NzbDrone.Api.Indexers;
using NzbDrone.Api.Notifications;
using RestSharp;
namespace NzbDrone.Integration.Test.Client
{
public class NotificationClient : ClientBase<NotificationResource>
{
public NotificationClient(IRestClient restClient, string apiKey)
: base(restClient, apiKey)
{
}
public List<NotificationResource> Schema()
{
var request = BuildRequest("/schema");
return Get<List<NotificationResource>>(request);
}
}
}

View File

@ -35,6 +35,7 @@ namespace NzbDrone.Integration.Test
protected IndexerClient Indexers;
protected EpisodeClient Episodes;
protected ClientBase<NamingConfigResource> NamingConfig;
protected NotificationClient Notifications;
private NzbDroneRunner _runner;
private List<SignalRMessage> _signalRReceived;
@ -80,6 +81,7 @@ namespace NzbDrone.Integration.Test
Indexers = new IndexerClient(RestClient, _runner.ApiKey);
Episodes = new EpisodeClient(RestClient, _runner.ApiKey);
NamingConfig = new ClientBase<NamingConfigResource>(RestClient, _runner.ApiKey, "config/naming");
Notifications = new NotificationClient(RestClient, _runner.ApiKey);
}
[TestFixtureTearDown]

View File

@ -0,0 +1,43 @@
using System;
using System.Linq;
using FluentAssertions;
using NUnit.Framework;
namespace NzbDrone.Integration.Test
{
[TestFixture]
public class NotificationIntegrationFixture : IntegrationTest
{
[Test]
public void should_not_have_any_default_notifications()
{
var notifications = Notifications.All();
notifications.Should().BeEmpty();
}
[Test]
public void should_be_able_to_get_schema()
{
var schema = Notifications.Schema();
schema.Should().NotBeEmpty();
schema.Should().Contain(c => string.IsNullOrWhiteSpace(c.Name));
}
[Test]
public void should_be_able_to_add_a_new_notification()
{
var schema = Notifications.Schema();
var xbmc = schema.Single(s => s.Implementation.Equals("Xbmc", StringComparison.InvariantCultureIgnoreCase));
xbmc.Name = "Test XBMC";
xbmc.Fields.Single(f => f.Name.Equals("Host")).Value = "localhost";
var result = Notifications.Post(xbmc);
Notifications.Delete(result.Id);
}
}
}

View File

@ -97,11 +97,13 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Client\ClientBase.cs" />
<Compile Include="Client\NotificationClient.cs" />
<Compile Include="Client\EpisodeClient.cs" />
<Compile Include="Client\IndexerClient.cs" />
<Compile Include="Client\ReleaseClient.cs" />
<Compile Include="Client\SeriesClient.cs" />
<Compile Include="CommandIntegerationTests.cs" />
<Compile Include="NotificationIntegrationFixture.cs" />
<Compile Include="SeriesEditorIntegrationTest.cs" />
<Compile Include="HistoryIntegrationTest.cs" />
<Compile Include="NamingConfigTests.cs" />