2018-02-13 18:10:49 +00:00
|
|
|
using FluentAssertions;
|
|
|
|
using NUnit.Framework;
|
|
|
|
using System.Linq;
|
|
|
|
using System.IO;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
namespace NzbDrone.Integration.Test.ApiTests
|
|
|
|
{
|
|
|
|
[TestFixture]
|
|
|
|
public class MovieFixture : IntegrationTest
|
|
|
|
{
|
|
|
|
[Test, Order(0)]
|
|
|
|
public void add_movie_with_tags_should_store_them()
|
|
|
|
{
|
2018-08-05 14:28:05 +00:00
|
|
|
EnsureNoMovie(680, "Pulp Fiction");
|
2018-02-13 18:10:49 +00:00
|
|
|
var tag = EnsureTag("abc");
|
|
|
|
|
|
|
|
var movie = Movies.Lookup("imdb:tt0110912").Single();
|
|
|
|
|
2019-09-03 02:22:25 +00:00
|
|
|
movie.QualityProfileId = 1;
|
2018-02-13 18:10:49 +00:00
|
|
|
movie.Path = Path.Combine(MovieRootFolder, movie.Title);
|
|
|
|
movie.Tags = new HashSet<int>();
|
|
|
|
movie.Tags.Add(tag.Id);
|
|
|
|
|
|
|
|
var result = Movies.Post(movie);
|
|
|
|
|
|
|
|
result.Should().NotBeNull();
|
|
|
|
result.Tags.Should().Equal(tag.Id);
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test, Order(0)]
|
|
|
|
public void add_movie_without_profileid_should_return_badrequest()
|
|
|
|
{
|
2019-10-14 20:20:59 +00:00
|
|
|
IgnoreOnMonoVersions("5.12", "5.14");
|
|
|
|
|
2018-08-05 14:28:05 +00:00
|
|
|
EnsureNoMovie(680, "Pulp Fiction");
|
2018-02-13 18:10:49 +00:00
|
|
|
|
|
|
|
var movie = Movies.Lookup("imdb:tt0110912").Single();
|
|
|
|
|
|
|
|
movie.Path = Path.Combine(MovieRootFolder, movie.Title);
|
|
|
|
|
|
|
|
Movies.InvalidPost(movie);
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test, Order(0)]
|
|
|
|
public void add_movie_without_path_should_return_badrequest()
|
|
|
|
{
|
2019-10-14 20:20:59 +00:00
|
|
|
IgnoreOnMonoVersions("5.12", "5.14");
|
|
|
|
|
2018-08-05 14:28:05 +00:00
|
|
|
EnsureNoMovie(680, "Pulp Fiction");
|
2018-02-13 18:10:49 +00:00
|
|
|
|
|
|
|
var movie = Movies.Lookup("imdb:tt0110912").Single();
|
|
|
|
|
2019-09-03 02:22:25 +00:00
|
|
|
movie.QualityProfileId = 1;
|
2018-02-13 18:10:49 +00:00
|
|
|
|
|
|
|
Movies.InvalidPost(movie);
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test, Order(1)]
|
|
|
|
public void add_movie()
|
|
|
|
{
|
2018-08-05 14:28:05 +00:00
|
|
|
EnsureNoMovie(680, "Pulp Fiction");
|
2018-02-13 18:10:49 +00:00
|
|
|
|
|
|
|
var movie = Movies.Lookup("imdb:tt0110912").Single();
|
|
|
|
|
2019-09-03 02:22:25 +00:00
|
|
|
movie.QualityProfileId = 1;
|
2018-02-13 18:10:49 +00:00
|
|
|
movie.Path = Path.Combine(MovieRootFolder, movie.Title);
|
|
|
|
|
|
|
|
var result = Movies.Post(movie);
|
|
|
|
|
|
|
|
result.Should().NotBeNull();
|
|
|
|
result.Id.Should().NotBe(0);
|
2019-09-03 02:22:25 +00:00
|
|
|
result.QualityProfileId.Should().Be(1);
|
2018-02-13 18:10:49 +00:00
|
|
|
result.Path.Should().Be(Path.Combine(MovieRootFolder, movie.Title));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[Test, Order(2)]
|
|
|
|
public void get_all_movies()
|
|
|
|
{
|
2018-08-05 14:28:05 +00:00
|
|
|
EnsureMovie(680, "Pulp Fiction");
|
|
|
|
EnsureMovie(155, "The Dark Knight");
|
2018-02-13 18:10:49 +00:00
|
|
|
|
|
|
|
Movies.All().Should().NotBeNullOrEmpty();
|
|
|
|
Movies.All().Should().Contain(v => v.ImdbId == "tt0110912");
|
|
|
|
Movies.All().Should().Contain(v => v.ImdbId == "tt0468569");
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test, Order(2)]
|
|
|
|
public void get_movie_by_id()
|
|
|
|
{
|
2018-08-05 14:28:05 +00:00
|
|
|
var movie = EnsureMovie(680, "Pulp Fiction");
|
2018-02-13 18:10:49 +00:00
|
|
|
|
|
|
|
var result = Movies.Get(movie.Id);
|
|
|
|
|
|
|
|
result.ImdbId.Should().Be("tt0110912");
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
public void get_movie_by_unknown_id_should_return_404()
|
|
|
|
{
|
2019-10-14 20:20:59 +00:00
|
|
|
IgnoreOnMonoVersions("5.12", "5.14");
|
|
|
|
|
2018-02-13 18:10:49 +00:00
|
|
|
var result = Movies.InvalidGet(1000000);
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test, Order(2)]
|
|
|
|
public void update_movie_profile_id()
|
|
|
|
{
|
2018-08-05 14:28:05 +00:00
|
|
|
var movie = EnsureMovie(680, "Pulp Fiction");
|
2018-02-13 18:10:49 +00:00
|
|
|
|
|
|
|
var profileId = 1;
|
2019-09-03 02:22:25 +00:00
|
|
|
if (movie.QualityProfileId == profileId)
|
2018-02-13 18:10:49 +00:00
|
|
|
{
|
|
|
|
profileId = 2;
|
|
|
|
}
|
|
|
|
|
2019-09-03 02:22:25 +00:00
|
|
|
movie.QualityProfileId = profileId;
|
2018-02-13 18:10:49 +00:00
|
|
|
|
|
|
|
var result = Movies.Put(movie);
|
|
|
|
|
2019-09-03 02:22:25 +00:00
|
|
|
Movies.Get(movie.Id).QualityProfileId.Should().Be(profileId);
|
2018-02-13 18:10:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
[Test, Order(3)]
|
|
|
|
public void update_movie_monitored()
|
|
|
|
{
|
2018-08-05 14:28:05 +00:00
|
|
|
var movie = EnsureMovie(680, "Pulp Fiction", false);
|
2018-02-13 18:10:49 +00:00
|
|
|
|
|
|
|
movie.Monitored.Should().BeFalse();
|
|
|
|
|
|
|
|
movie.Monitored = true;
|
|
|
|
|
|
|
|
var result = Movies.Put(movie);
|
|
|
|
|
|
|
|
result.Monitored.Should().BeTrue();
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test, Order(3)]
|
|
|
|
public void update_movie_tags()
|
|
|
|
{
|
2018-08-05 14:28:05 +00:00
|
|
|
var movie = EnsureMovie(680, "Pulp Fiction");
|
2018-02-13 18:10:49 +00:00
|
|
|
var tag = EnsureTag("abc");
|
|
|
|
|
|
|
|
if (movie.Tags.Contains(tag.Id))
|
|
|
|
{
|
|
|
|
movie.Tags.Remove(tag.Id);
|
|
|
|
|
|
|
|
var result = Movies.Put(movie);
|
|
|
|
Movies.Get(movie.Id).Tags.Should().NotContain(tag.Id);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
movie.Tags.Add(tag.Id);
|
|
|
|
|
|
|
|
var result = Movies.Put(movie);
|
|
|
|
Movies.Get(movie.Id).Tags.Should().Contain(tag.Id);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test, Order(4)]
|
|
|
|
public void delete_movie()
|
|
|
|
{
|
2018-08-05 14:28:05 +00:00
|
|
|
var movie = EnsureMovie(680, "Pulp Fiction");
|
2018-02-13 18:10:49 +00:00
|
|
|
|
|
|
|
Movies.Get(movie.Id).Should().NotBeNull();
|
|
|
|
|
|
|
|
Movies.Delete(movie.Id);
|
|
|
|
|
|
|
|
Movies.All().Should().NotContain(v => v.ImdbId == "tt0110912");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|