Added method to delete orphaned episodeFiles and also cleanup episodes that have invalid episodeFiles.

Cleanup will run aforementioned methods before doing cleanup.
This commit is contained in:
Mark McDowall
2011-06-20 18:49:16 -07:00
parent 208feb7d19
commit 68b7ba9209
3 changed files with 65 additions and 1 deletions
@@ -359,5 +359,47 @@ namespace NzbDrone.Core.Test
//Assert
Assert.AreEqual(expectedName, result);
}
[Test]
public void CleanEpisodesWithNonExistantFiles()
{
//Setup
var episodes = Builder<Episode>.CreateListOfSize(10).Build();
var mocker = new AutoMoqer();
var database = MockLib.GetEmptyDatabase(true);
mocker.SetConstant(database);
database.InsertMany(episodes);
//Act
mocker.Resolve<MediaFileProvider>().CleanEpisodesWithNonExistantFiles();
var result = database.Fetch<Episode>();
//Assert
result.Should().HaveSameCount(episodes);
result.Should().OnlyContain(e => e.EpisodeFileId == 0);
}
[Test]
public void DeleteOrphanedEpisodeFiles()
{
//Setup
var episodeFiles = Builder<EpisodeFile>.CreateListOfSize(10).Build();
var episodes = Builder<Episode>.CreateListOfSize(5).Build();
var mocker = new AutoMoqer();
var database = MockLib.GetEmptyDatabase(true);
mocker.SetConstant(database);
database.InsertMany(episodes);
database.InsertMany(episodeFiles);
//Act
mocker.Resolve<MediaFileProvider>().DeleteOrphanedEpisodeFiles();
var result = database.Fetch<EpisodeFile>();
//Assert
result.Should().HaveCount(5);
result.Should().OnlyContain(e => e.EpisodeFileId > 0);
}
}
}