From 79973594c20a85a56de8f03b00e4a9cc3175595b Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Mon, 23 May 2022 20:52:27 -0700 Subject: [PATCH] Fixed cutoff unmet integration tests Closes #2822 (cherry picked from commit c1e5b7f642d03414f7c5587d4db377ef979f2067) --- .../CutoffUnmetFixture.cs} | 68 ++------------- .../ApiTests/WantedTests/MissingFixture.cs | 84 +++++++++++++++++++ .../IntegrationTestBase.cs | 14 +++- 3 files changed, 103 insertions(+), 63 deletions(-) rename src/NzbDrone.Integration.Test/ApiTests/{WantedFixture.cs => WantedTests/CutoffUnmetFixture.cs} (53%) create mode 100644 src/NzbDrone.Integration.Test/ApiTests/WantedTests/MissingFixture.cs diff --git a/src/NzbDrone.Integration.Test/ApiTests/WantedFixture.cs b/src/NzbDrone.Integration.Test/ApiTests/WantedTests/CutoffUnmetFixture.cs similarity index 53% rename from src/NzbDrone.Integration.Test/ApiTests/WantedFixture.cs rename to src/NzbDrone.Integration.Test/ApiTests/WantedTests/CutoffUnmetFixture.cs index d11f1bcb6..1ee2f441c 100644 --- a/src/NzbDrone.Integration.Test/ApiTests/WantedFixture.cs +++ b/src/NzbDrone.Integration.Test/ApiTests/WantedTests/CutoffUnmetFixture.cs @@ -5,10 +5,10 @@ using NUnit.Framework; using NzbDrone.Core.Music; using NzbDrone.Core.Qualities; -namespace NzbDrone.Integration.Test.ApiTests +namespace NzbDrone.Integration.Test.ApiTests.WantedTests { [TestFixture] - public class WantedFixture : IntegrationTest + public class CutoffUnmetFixture : IntegrationTest { [SetUp] public void Setup() @@ -24,45 +24,11 @@ namespace NzbDrone.Integration.Test.ApiTests }); } - [Test] - [Order(0)] - public void missing_should_be_empty() - { - EnsureNoArtist("8ac6cc32-8ddf-43b1-9ac4-4b04f9053176", "Alien Ant Farm"); - - var result = WantedMissing.GetPaged(0, 15, "releaseDate", "desc"); - - result.Records.Should().BeEmpty(); - } - - [Test] - [Order(1)] - public void missing_should_have_monitored_items() - { - EnsureArtist("8ac6cc32-8ddf-43b1-9ac4-4b04f9053176", "Alien Ant Farm", true); - - var result = WantedMissing.GetPaged(0, 15, "releaseDate", "desc"); - - result.Records.Should().NotBeEmpty(); - } - - [Test] - [Order(1)] - public void missing_should_have_artist() - { - EnsureArtist("8ac6cc32-8ddf-43b1-9ac4-4b04f9053176", "Alien Ant Farm", true); - - var result = WantedMissing.GetPaged(0, 15, "releaseDate", "desc"); - - result.Records.First().Artist.Should().NotBeNull(); - result.Records.First().Artist.ArtistName.Should().Be("Alien Ant Farm"); - } - [Test] [Order(1)] public void cutoff_should_have_monitored_items() { - EnsureProfileCutoff(1, "Lossless"); + EnsureProfileCutoff(1, "Lossless", true); var artist = EnsureArtist("8ac6cc32-8ddf-43b1-9ac4-4b04f9053176", "Alien Ant Farm", true); EnsureTrackFile(artist, 1, 1, 1, Quality.MP3_192); @@ -71,22 +37,11 @@ namespace NzbDrone.Integration.Test.ApiTests result.Records.Should().NotBeEmpty(); } - [Test] - [Order(1)] - public void missing_should_not_have_unmonitored_items() - { - EnsureArtist("8ac6cc32-8ddf-43b1-9ac4-4b04f9053176", "Alien Ant Farm", false); - - var result = WantedMissing.GetPaged(0, 15, "releaseDate", "desc"); - - result.Records.Should().BeEmpty(); - } - [Test] [Order(1)] public void cutoff_should_not_have_unmonitored_items() { - EnsureProfileCutoff(1, "Lossless"); + EnsureProfileCutoff(1, "Lossless", true); var artist = EnsureArtist("8ac6cc32-8ddf-43b1-9ac4-4b04f9053176", "Alien Ant Farm", false); EnsureTrackFile(artist, 1, 1, 1, Quality.MP3_192); @@ -99,7 +54,7 @@ namespace NzbDrone.Integration.Test.ApiTests [Order(1)] public void cutoff_should_have_artist() { - EnsureProfileCutoff(1, "Lossless"); + EnsureProfileCutoff(1, "Lossless", true); var artist = EnsureArtist("8ac6cc32-8ddf-43b1-9ac4-4b04f9053176", "Alien Ant Farm", true); EnsureTrackFile(artist, 1, 1, 1, Quality.MP3_192); @@ -109,22 +64,11 @@ namespace NzbDrone.Integration.Test.ApiTests result.Records.First().Artist.ArtistName.Should().Be("Alien Ant Farm"); } - [Test] - [Order(2)] - public void missing_should_have_unmonitored_items() - { - EnsureArtist("8ac6cc32-8ddf-43b1-9ac4-4b04f9053176", "Alien Ant Farm", false); - - var result = WantedMissing.GetPaged(0, 15, "releaseDate", "desc", "monitored", "false"); - - result.Records.Should().NotBeEmpty(); - } - [Test] [Order(2)] public void cutoff_should_have_unmonitored_items() { - EnsureProfileCutoff(1, "Lossless"); + EnsureProfileCutoff(1, "Lossless", true); var artist = EnsureArtist("8ac6cc32-8ddf-43b1-9ac4-4b04f9053176", "Alien Ant Farm", false); EnsureTrackFile(artist, 1, 1, 1, Quality.MP3_192); diff --git a/src/NzbDrone.Integration.Test/ApiTests/WantedTests/MissingFixture.cs b/src/NzbDrone.Integration.Test/ApiTests/WantedTests/MissingFixture.cs new file mode 100644 index 000000000..76c18c737 --- /dev/null +++ b/src/NzbDrone.Integration.Test/ApiTests/WantedTests/MissingFixture.cs @@ -0,0 +1,84 @@ +using System.Linq; +using FluentAssertions; +using Lidarr.Api.V1.RootFolders; +using NUnit.Framework; +using NzbDrone.Core.Music; +using NzbDrone.Core.Qualities; + +namespace NzbDrone.Integration.Test.ApiTests.WantedTests +{ + [TestFixture] + public class MissingFixture : IntegrationTest + { + [SetUp] + public void Setup() + { + // Add a root folder + RootFolders.Post(new RootFolderResource + { + Name = "TestLibrary", + Path = ArtistRootFolder, + DefaultMetadataProfileId = 1, + DefaultQualityProfileId = 1, + DefaultMonitorOption = MonitorTypes.All + }); + } + + [Test] + [Order(0)] + public void missing_should_be_empty() + { + EnsureNoArtist("8ac6cc32-8ddf-43b1-9ac4-4b04f9053176", "Alien Ant Farm"); + + var result = WantedMissing.GetPaged(0, 15, "releaseDate", "desc"); + + result.Records.Should().BeEmpty(); + } + + [Test] + [Order(1)] + public void missing_should_have_monitored_items() + { + EnsureArtist("8ac6cc32-8ddf-43b1-9ac4-4b04f9053176", "Alien Ant Farm", true); + + var result = WantedMissing.GetPaged(0, 15, "releaseDate", "desc"); + + result.Records.Should().NotBeEmpty(); + } + + [Test] + [Order(1)] + public void missing_should_have_artist() + { + EnsureArtist("8ac6cc32-8ddf-43b1-9ac4-4b04f9053176", "Alien Ant Farm", true); + + var result = WantedMissing.GetPaged(0, 15, "releaseDate", "desc"); + + result.Records.First().Artist.Should().NotBeNull(); + result.Records.First().Artist.ArtistName.Should().Be("Alien Ant Farm"); + } + + [Test] + [Order(1)] + public void missing_should_not_have_unmonitored_items() + { + EnsureArtist("8ac6cc32-8ddf-43b1-9ac4-4b04f9053176", "Alien Ant Farm", false); + + var result = WantedMissing.GetPaged(0, 15, "releaseDate", "desc"); + + result.Records.Should().BeEmpty(); + } + + [Test] + [Order(2)] + public void missing_should_have_unmonitored_items() + { + EnsureArtist("8ac6cc32-8ddf-43b1-9ac4-4b04f9053176", "Alien Ant Farm", false); + + var result = WantedMissing.GetPaged(0, 15, "releaseDate", "desc", "monitored", "false"); + + result.Records.Should().NotBeEmpty(); + } + + } +} diff --git a/src/NzbDrone.Integration.Test/IntegrationTestBase.cs b/src/NzbDrone.Integration.Test/IntegrationTestBase.cs index 2fc96a15d..590f19837 100644 --- a/src/NzbDrone.Integration.Test/IntegrationTestBase.cs +++ b/src/NzbDrone.Integration.Test/IntegrationTestBase.cs @@ -331,14 +331,26 @@ namespace NzbDrone.Integration.Test } } - public QualityProfileResource EnsureProfileCutoff(int profileId, string cutoff) + public QualityProfileResource EnsureProfileCutoff(int profileId, string cutoff, bool upgradeAllowed) { + var needsUpdate = false; var profile = Profiles.Get(profileId); var cutoffItem = profile.Items.First(x => x.Name == cutoff); if (profile.Cutoff != cutoffItem.Id) { profile.Cutoff = cutoffItem.Id; + needsUpdate = true; + } + + if (profile.UpgradeAllowed != upgradeAllowed) + { + profile.UpgradeAllowed = upgradeAllowed; + needsUpdate = true; + } + + if (needsUpdate) + { profile = Profiles.Put(profile); }