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

54 lines
1.7 KiB
C#
Raw Normal View History

2013-04-01 02:43:58 +00:00
using System.Net;
using FluentAssertions;
using NUnit.Framework;
using Newtonsoft.Json;
using NzbDrone.Common;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.DataAugmentation.Scene;
using NzbDrone.Core.Test.Framework;
namespace NzbDrone.Core.Test.DataAugmentationFixture.Scene
{
[TestFixture]
public class SceneMappingProxyFixture : CoreTest<SceneMappingProxy>
{
private const string SCENE_MAPPING_URL = "http://services.nzbdrone.com/SceneMapping/Active";
[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());
}
}
}