Lidarr/src/NzbDrone.Core.Test/DecisionEngineTests/MinimumAgeSpecificationFixt...

65 lines
1.7 KiB
C#

using System;
using FluentAssertions;
using NUnit.Framework;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.DecisionEngine.Specifications;
using NzbDrone.Core.Indexers;
using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.Test.Framework;
namespace NzbDrone.Core.Test.DecisionEngineTests
{
[TestFixture]
public class MinimumAgeSpecificationFixture : CoreTest<MinimumAgeSpecification>
{
private RemoteAlbum _remoteAlbum;
[SetUp]
public void Setup()
{
_remoteAlbum = new RemoteAlbum
{
Release = new ReleaseInfo() { DownloadProtocol = nameof(UsenetDownloadProtocol) }
};
}
private void WithMinimumAge(int minutes)
{
Mocker.GetMock<IConfigService>().SetupGet(c => c.MinimumAge).Returns(minutes);
}
private void WithAge(int minutes)
{
_remoteAlbum.Release.PublishDate = DateTime.UtcNow.AddMinutes(-minutes);
}
[Test]
public void should_return_true_when_minimum_age_is_set_to_zero()
{
WithMinimumAge(0);
WithAge(100);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
}
[Test]
public void should_return_true_when_age_is_greater_than_minimum_age()
{
WithMinimumAge(30);
WithAge(100);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
}
[Test]
public void should_return_false_when_age_is_less_than_minimum_age()
{
WithMinimumAge(30);
WithAge(10);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
}
}
}