mirror of https://github.com/Radarr/Radarr
148 lines
4.3 KiB
C#
148 lines
4.3 KiB
C#
using System;
|
|
|
|
using FizzWare.NBuilder;
|
|
using FluentAssertions;
|
|
using Moq;
|
|
using NUnit.Framework;
|
|
using NzbDrone.Core.Model;
|
|
using NzbDrone.Core.Providers;
|
|
using NzbDrone.Core.Repository;
|
|
using NzbDrone.Core.Repository.Quality;
|
|
using NzbDrone.Core.Test.Framework;
|
|
using NzbDrone.Test.Common;
|
|
using NzbDrone.Test.Common.AutoMoq;
|
|
using Prowlin;
|
|
|
|
// ReSharper disable InconsistentNaming
|
|
|
|
namespace NzbDrone.Core.Test.ProviderTests
|
|
{
|
|
[Explicit]
|
|
[TestFixture]
|
|
public class ProwlProviderTest : CoreTest
|
|
{
|
|
private const string _apiKey = "c3bdc0f48168f72d546cc6872925b160f5cbffc1";
|
|
private const string _apiKey2 = "46a710a46b111b0b8633819b0d8a1e0272a3affa";
|
|
|
|
private const string _badApiKey = "1234567890abcdefghijklmnopqrstuvwxyz1234";
|
|
|
|
[Test]
|
|
public void Verify_should_return_true_for_a_valid_apiKey()
|
|
{
|
|
//Setup
|
|
WithStrictMocker();
|
|
|
|
//Act
|
|
var result = Mocker.Resolve<ProwlProvider>().Verify(_apiKey);
|
|
|
|
//Assert
|
|
result.Should().BeTrue();
|
|
}
|
|
|
|
[Test]
|
|
public void Verify_should_return_false_for_an_invalid_apiKey()
|
|
{
|
|
//Setup
|
|
WithStrictMocker();
|
|
|
|
//Act
|
|
var result = Mocker.Resolve<ProwlProvider>().Verify(_badApiKey);
|
|
|
|
//Assert
|
|
ExceptionVerification.ExpectedWarns(1);
|
|
result.Should().BeFalse();
|
|
}
|
|
|
|
[Test]
|
|
public void SendNotification_should_return_true_for_a_valid_apiKey()
|
|
{
|
|
//Setup
|
|
WithStrictMocker();
|
|
|
|
//Act
|
|
var result = Mocker.Resolve<ProwlProvider>().SendNotification("NzbDrone Test", "This is a test message from NzbDrone", _apiKey);
|
|
|
|
//Assert
|
|
result.Should().BeTrue();
|
|
}
|
|
|
|
[Test]
|
|
public void SendNotification_should_return_false_for_an_invalid_apiKey()
|
|
{
|
|
//Setup
|
|
WithStrictMocker();
|
|
|
|
//Act
|
|
var result = Mocker.Resolve<ProwlProvider>().SendNotification("NzbDrone Test", "This is a test message from NzbDrone", _badApiKey);
|
|
|
|
//Assert
|
|
ExceptionVerification.ExpectedWarns(1);
|
|
result.Should().BeFalse();
|
|
}
|
|
|
|
[Test]
|
|
public void SendNotification_should_alert_with_high_priority()
|
|
{
|
|
//Setup
|
|
WithStrictMocker();
|
|
|
|
//Act
|
|
var result = Mocker.Resolve<ProwlProvider>().SendNotification("NzbDrone Test", "This is a test message from NzbDrone (High)", _apiKey, NotificationPriority.High);
|
|
|
|
//Assert
|
|
result.Should().BeTrue();
|
|
}
|
|
|
|
[Test]
|
|
public void SendNotification_should_alert_with_VeryLow_priority()
|
|
{
|
|
//Setup
|
|
WithStrictMocker();
|
|
|
|
//Act
|
|
var result = Mocker.Resolve<ProwlProvider>().SendNotification("NzbDrone Test", "This is a test message from NzbDrone (VeryLow)", _apiKey, NotificationPriority.VeryLow);
|
|
|
|
//Assert
|
|
result.Should().BeTrue();
|
|
}
|
|
|
|
[Test]
|
|
public void SendNotification_should_have_a_call_back_url()
|
|
{
|
|
//Setup
|
|
WithStrictMocker();
|
|
|
|
//Act
|
|
var result = Mocker.Resolve<ProwlProvider>().SendNotification("NzbDrone Test", "This is a test message from NzbDrone", _apiKey, NotificationPriority.Normal, "http://www.nzbdrone.com");
|
|
|
|
//Assert
|
|
result.Should().BeTrue();
|
|
}
|
|
|
|
[Test]
|
|
public void SendNotification_should_return_true_for_two_valid_apiKey()
|
|
{
|
|
//Setup
|
|
WithStrictMocker();
|
|
|
|
//Act
|
|
var result = Mocker.Resolve<ProwlProvider>().SendNotification("NzbDrone Test", "This is a test message from NzbDrone", _apiKey + ", " + _apiKey2);
|
|
|
|
//Assert
|
|
result.Should().BeTrue();
|
|
}
|
|
|
|
[Test]
|
|
public void SendNotification_should_return_true_for_valid_apiKey_with_bad_apiKey()
|
|
{
|
|
//Setup
|
|
WithStrictMocker();
|
|
|
|
//Act
|
|
var result = Mocker.Resolve<ProwlProvider>().SendNotification("NzbDrone Test", "This is a test message from NzbDrone", _apiKey + ", " + _badApiKey);
|
|
|
|
//Assert
|
|
result.Should().BeTrue();
|
|
}
|
|
}
|
|
} |