diff --git a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupUnusedTagsFixture.cs b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupUnusedTagsFixture.cs index 05e2b58df..4f9b7c0b9 100644 --- a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupUnusedTagsFixture.cs +++ b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupUnusedTagsFixture.cs @@ -2,6 +2,8 @@ using FizzWare.NBuilder; using FluentAssertions; using NUnit.Framework; using NzbDrone.Core.Housekeeping.Housekeepers; +using NzbDrone.Core.IndexerProxies; +using NzbDrone.Core.IndexerProxies.Http; using NzbDrone.Core.Tags; using NzbDrone.Core.Test.Framework; @@ -22,5 +24,30 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers Subject.Clean(); AllStoredModels.Should().BeEmpty(); } + + [Test] + public void should_not_delete_used_tags() + { + var tags = Builder + .CreateListOfSize(2) + .All() + .With(x => x.Id = 0) + .BuildList(); + + Db.InsertMany(tags); + + var settings = Builder.CreateNew().Build(); + + var restrictions = Builder.CreateListOfSize(2) + .All() + .With(x => x.Id = 0) + .With(x => x.Settings = settings) + .With(v => v.Tags.Add(tags[0].Id)) + .BuildList(); + Db.InsertMany(restrictions); + + Subject.Clean(); + AllStoredModels.Should().HaveCount(1); + } } } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupUnusedTags.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupUnusedTags.cs index f23773660..4ee4afd78 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupUnusedTags.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupUnusedTags.cs @@ -19,7 +19,7 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers { using (var mapper = _database.OpenConnection()) { - var usedTags = new[] { "Notifications" } + var usedTags = new[] { "Notifications", "IndexerProxies", "Indexers", "Applications" } .SelectMany(v => GetUsedTags(v, mapper)) .Distinct() .ToArray();