sonarr-repo-only/NzbDrone.Core.Test/DataAugmentationFixture/Scene/SceneMappingProxyFixture.cs

52 lines
1.6 KiB
C#
Raw Normal View History

2013-04-01 02:43:58 +00:00
using System.Net;
using FluentAssertions;
using Newtonsoft.Json;
2013-09-19 00:30:37 +00:00
using NUnit.Framework;
2013-04-01 02:43:58 +00:00
using NzbDrone.Common;
using NzbDrone.Core.DataAugmentation.Scene;
using NzbDrone.Core.Test.Framework;
namespace NzbDrone.Core.Test.DataAugmentationFixture.Scene
{
[TestFixture]
public class SceneMappingProxyFixture : CoreTest<SceneMappingProxy>
{
2013-09-06 06:28:52 +00:00
private const string SCENE_MAPPING_URL = "http://services.nzbdrone.com/v1/SceneMapping";
2013-04-01 02:43:58 +00:00
[Test]
public void fetch_should_return_list_of_mappings()
{
2013-04-10 23:41:45 +00:00
Mocker.GetMock<IHttpProvider>()
2013-04-01 02:43:58 +00:00
.Setup(s => s.DownloadString(SCENE_MAPPING_URL))
.Returns(ReadAllText("Files", "SceneMappings.json"));
var mappings = Subject.Fetch();
mappings.Should().NotBeEmpty();
mappings.Should().NotContain(c => string.IsNullOrWhiteSpace(c.SearchTerm));
mappings.Should().NotContain(c => string.IsNullOrWhiteSpace(c.ParseTerm));
2013-04-01 02:43:58 +00:00
mappings.Should().NotContain(c => c.TvdbId == 0);
}
[Test]
public void should_throw_on_server_error()
{
2013-04-10 23:41:45 +00:00
Mocker.GetMock<IHttpProvider>()
2013-04-01 02:43:58 +00:00
.Setup(s => s.DownloadString(SCENE_MAPPING_URL))
.Throws(new WebException());
Assert.Throws<WebException>(() => Subject.Fetch());
}
[Test]
public void should_throw_on_bad_json()
{
2013-04-10 23:41:45 +00:00
Mocker.GetMock<IHttpProvider>()
2013-04-01 02:43:58 +00:00
.Setup(s => s.DownloadString(SCENE_MAPPING_URL))
.Returns("bad json");
Assert.Throws<JsonReaderException>(() => Subject.Fetch());
}
}
}