Files
Prowlarr/src/NzbDrone.Core.Test/MovieTests/ShouldRefreshMovieFixture.cs
T
Leonardo Galli 77f146b262 Added: Ability to add custom formats, working similar to qualities. (#2669)
Originally called project metis, this feature allows you to do a lot of cool stuff, such as upgrading to a x265 encode, downloading releases with multiple languages, etc. Check out the wiki page at: https://github.com/Radarr/Radarr/wiki/Custom-Formats to learn more! Note: This feature is currently in "beta" and will get more tags and features in the future. Please let me know, if you have any issues and I hope this will allow for a lot of customization!
2018-08-05 16:28:05 +02:00

126 lines
3.5 KiB
C#

using System;
using System.Linq;
using FizzWare.NBuilder;
using FluentAssertions;
using NUnit.Framework;
using NzbDrone.Core.Movies;
using NzbDrone.Test.Common;
namespace NzbDrone.Core.Test.MovieTests
{
[TestFixture]
public class ShouldRefreshMovieFixture : TestBase<ShouldRefreshMovie>
{
private Movie _movie;
[SetUp]
public void Setup()
{
_movie = Builder<Movie>.CreateNew()
.With(v => v.Status = MovieStatusType.InCinemas)
.With(m => m.PhysicalRelease = DateTime.Today.AddDays(-100))
.Build();
}
private void GivenMovieIsAnnouced()
{
_movie.Status = MovieStatusType.Announced;
}
private void GivenMovieIsReleased()
{
_movie.Status = MovieStatusType.Released;
}
private void GivenMovieLastRefreshedMonthsAgo()
{
_movie.LastInfoSync = DateTime.UtcNow.AddDays(-90);
}
private void GivenMovieLastRefreshedYesterday()
{
_movie.LastInfoSync = DateTime.UtcNow.AddDays(-1);
}
private void GivenMovieLastRefreshedHalfADayAgo()
{
_movie.LastInfoSync = DateTime.UtcNow.AddHours(-12);
}
private void GivenMovieLastRefreshedRecently()
{
_movie.LastInfoSync = DateTime.UtcNow.AddHours(-1);
}
private void GivenRecentlyReleased()
{
_movie.PhysicalRelease = DateTime.Today.AddDays(-7);
}
[Test]
public void should_return_true_if_in_cinemas_movie_last_refreshed_more_than_6_hours_ago()
{
GivenMovieLastRefreshedHalfADayAgo();
Subject.ShouldRefresh(_movie).Should().BeTrue();
}
[Test]
public void should_return_false_if_in_cinemas_movie_last_refreshed_less_than_6_hours_ago()
{
GivenMovieLastRefreshedRecently();
Subject.ShouldRefresh(_movie).Should().BeFalse();
}
[Test]
public void should_return_false_if_released_movie_last_refreshed_yesterday()
{
GivenMovieIsReleased();
GivenMovieLastRefreshedYesterday();
Subject.ShouldRefresh(_movie).Should().BeFalse();
}
[Test]
public void should_return_true_if_movie_last_refreshed_more_than_30_days_ago()
{
GivenMovieIsReleased();
GivenMovieLastRefreshedMonthsAgo();
Subject.ShouldRefresh(_movie).Should().BeTrue();
}
[Test]
public void should_return_true_if_episode_aired_in_last_30_days()
{
GivenMovieIsReleased();
GivenMovieLastRefreshedYesterday();
GivenRecentlyReleased();
Subject.ShouldRefresh(_movie).Should().BeTrue();
}
[Test]
public void should_return_false_when_recently_refreshed_released_movie_released_30_days()
{
GivenMovieIsReleased();
GivenMovieLastRefreshedYesterday();
Subject.ShouldRefresh(_movie).Should().BeFalse();
}
[Test]
public void should_return_false_when_recently_refreshed_ended_show_aired_in_last_30_days()
{
GivenMovieIsReleased();
GivenMovieLastRefreshedRecently();
GivenRecentlyReleased();
Subject.ShouldRefresh(_movie).Should().BeFalse();
}
}
}