diff --git a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupAdditionalNamingSpecsFixture.cs b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupAdditionalNamingSpecsFixture.cs new file mode 100644 index 000000000..b369ec925 --- /dev/null +++ b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupAdditionalNamingSpecsFixture.cs @@ -0,0 +1,37 @@ +using FizzWare.NBuilder; +using FluentAssertions; +using NUnit.Framework; +using NzbDrone.Core.Housekeeping.Housekeepers; +using NzbDrone.Core.Organizer; +using NzbDrone.Core.Test.Framework; + +namespace NzbDrone.Core.Test.Housekeeping.Housekeepers +{ + [TestFixture] + public class CleanupAdditionalNamingSpecsFixture : DbTest + { + [Test] + public void should_delete_additional_naming_configs() + { + var specs = Builder.CreateListOfSize(5) + .BuildListOfNew(); + + Db.InsertMany(specs); + + Subject.Clean(); + AllStoredModels.Should().HaveCount(1); + } + + [Test] + public void should_not_delete_if_only_one_spec() + { + var spec = Builder.CreateNew() + .BuildNew(); + + Db.Insert(spec); + + Subject.Clean(); + AllStoredModels.Should().HaveCount(1); + } + } +} \ No newline at end of file diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalNamingSpecs.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalNamingSpecs.cs new file mode 100644 index 000000000..ece5ce6c7 --- /dev/null +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupAdditionalNamingSpecs.cs @@ -0,0 +1,29 @@ +using NLog; +using NzbDrone.Core.Datastore; + +namespace NzbDrone.Core.Housekeeping.Housekeepers +{ + public class CleanupAdditionalNamingSpecs : IHousekeepingTask + { + private readonly IDatabase _database; + private readonly Logger _logger; + + public CleanupAdditionalNamingSpecs(IDatabase database, Logger logger) + { + _database = database; + _logger = logger; + } + + public void Clean() + { + _logger.Trace("Running naming spec cleanup"); + + var mapper = _database.GetDataMapper(); + + mapper.ExecuteNonQuery(@"DELETE FROM NamingConfig + WHERE ID NOT IN ( + SELECT ID FROM NamingConfig + LIMIT 1)"); + } + } +} diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedEpisodes.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedEpisodes.cs index 0965fc33c..a75a69ded 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedEpisodes.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedEpisodes.cs @@ -1,6 +1,5 @@ using NLog; using NzbDrone.Core.Datastore; -using NzbDrone.Core.Tv; namespace NzbDrone.Core.Housekeeping.Housekeepers { diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs index 11567a2ba..f715665fb 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs @@ -1,6 +1,5 @@ using NLog; using NzbDrone.Core.Datastore; -using NzbDrone.Core.History; namespace NzbDrone.Core.Housekeeping.Housekeepers {