From ff673f3d7d951b7923a38f420fd7a5f40ebb7b9c Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Wed, 8 Jun 2011 08:17:51 -0700 Subject: [PATCH] More tests for ImportNewDownload to deal with samples or certains sizes. --- ...MediaFileProvider_ImportNewDownloadTest.cs | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/NzbDrone.Core.Test/MediaFileProvider_ImportNewDownloadTest.cs b/NzbDrone.Core.Test/MediaFileProvider_ImportNewDownloadTest.cs index 1a2f16c38..5e2cd840c 100644 --- a/NzbDrone.Core.Test/MediaFileProvider_ImportNewDownloadTest.cs +++ b/NzbDrone.Core.Test/MediaFileProvider_ImportNewDownloadTest.cs @@ -342,5 +342,109 @@ namespace NzbDrone.Core.Test mocker.VerifyAllMocks(); Assert.AreEqual(0, result.Count); } + + [Test] + [Description("Verifies that a new download will not import successfully, episode is sample under 40MB")] + public void import_new_download_not_imported_episode_sample_under_40MB() + { + //Alternate Setup + episodeFile2.Episodes.Add(episode2); + episode2.EpisodeFile = episodeFile2; + episodeFile2.Quality = QualityTypes.Bluray720p; + + //Mocks + var mocker = new AutoMoqer(); + + var diskProvider = mocker.GetMock(); + diskProvider.Setup(d => d.GetFiles(It.IsAny(), "*.*", SearchOption.AllDirectories)).Returns(new string[] { @"C:\Test\30 Rock - 1x05x06 - Episode Title\30.Rock.S01E05.Gibberish.x264-sample.avi" }); + diskProvider.Setup(d => d.GetSize(It.IsAny())).Returns(30000000); + + //Act + var result = mocker.Resolve().ImportNewFiles(@"C:\Test\30 Rock - 1x05x06 - Episode Title", series); + + //Assert + mocker.VerifyAllMocks(); + Assert.AreEqual(0, result.Count); + } + + [Test] + [Description("Verifies that a new download will import successfully, even though the episode title contains Sample")] + public void import_new_download_imported_contains_sample_over_40MB() + { + //Mocks + var mocker = new AutoMoqer(); + + var diskProvider = mocker.GetMock(); + diskProvider.Setup(d => d.GetFiles(It.IsAny(), "*.*", SearchOption.AllDirectories)).Returns(new string[] { @"C:\Test\30 Rock - 1x05 - Episode Title\30.Rock.S01E05.Fourty.Samples.Gibberish.XviD.avi" }); + diskProvider.Setup(d => d.GetSize(It.IsAny())).Returns(90000000000); + diskProvider.Setup(d => d.CreateDirectory(It.IsAny())).Returns("ok"); + diskProvider.Setup(d => d.RenameFile(It.IsAny(), It.IsAny())); + diskProvider.Setup(d => d.GetExtension(It.IsAny())).Returns(".avi"); + + var episodeProvider = mocker.GetMock(); + episodeProvider.Setup(e => e.GetEpisodes(It.IsAny())).Returns(new List { episode }); + episodeProvider.Setup(e => e.GetEpisode(series.SeriesId, 1, 5)).Returns(episode); + + var configProvider = mocker.GetMock(); + configProvider.SetupGet(c => c.UseSeasonFolder).Returns(true); + configProvider.SetupGet(c => c.SeasonFolderFormat).Returns(@"Season %0s"); + configProvider.SetupGet(c => c.SeriesName).Returns(true); + configProvider.SetupGet(c => c.EpisodeName).Returns(true); + configProvider.SetupGet(c => c.AppendQuality).Returns(true); + configProvider.SetupGet(c => c.SeparatorStyle).Returns(0); + configProvider.SetupGet(c => c.NumberStyle).Returns(2); + configProvider.SetupGet(c => c.ReplaceSpaces).Returns(false); + + var repo = mocker.GetMock(); + repo.Setup(r => r.Exists(It.IsAny>>())).Returns(false).Verifiable(); + repo.Setup(r => r.Add(It.IsAny())).Returns(1); + + //Act + var result = mocker.Resolve().ImportNewFiles(@"C:\Test\30 Rock - 1x05 - Fourty Samples", series); + + //Assert + mocker.VerifyAllMocks(); + Assert.AreEqual(1, result.Count); + } + + [Test] + [Description("Verifies that a new download will import successfully, even though the efile size is under 40MB")] + public void import_new_download_imported_under_40MB() + { + //Mocks + var mocker = new AutoMoqer(); + + var diskProvider = mocker.GetMock(); + diskProvider.Setup(d => d.GetFiles(It.IsAny(), "*.*", SearchOption.AllDirectories)).Returns(new string[] { @"C:\Test\30 Rock - 1x05 - Episode Title\30.Rock.S01E05.Gibberish.XviD.avi" }); + diskProvider.Setup(d => d.GetSize(It.IsAny())).Returns(30000000); + diskProvider.Setup(d => d.CreateDirectory(It.IsAny())).Returns("ok"); + diskProvider.Setup(d => d.RenameFile(It.IsAny(), It.IsAny())); + diskProvider.Setup(d => d.GetExtension(It.IsAny())).Returns(".avi"); + + var episodeProvider = mocker.GetMock(); + episodeProvider.Setup(e => e.GetEpisodes(It.IsAny())).Returns(new List { episode }); + episodeProvider.Setup(e => e.GetEpisode(series.SeriesId, 1, 5)).Returns(episode); + + var configProvider = mocker.GetMock(); + configProvider.SetupGet(c => c.UseSeasonFolder).Returns(true); + configProvider.SetupGet(c => c.SeasonFolderFormat).Returns(@"Season %0s"); + configProvider.SetupGet(c => c.SeriesName).Returns(true); + configProvider.SetupGet(c => c.EpisodeName).Returns(true); + configProvider.SetupGet(c => c.AppendQuality).Returns(true); + configProvider.SetupGet(c => c.SeparatorStyle).Returns(0); + configProvider.SetupGet(c => c.NumberStyle).Returns(2); + configProvider.SetupGet(c => c.ReplaceSpaces).Returns(false); + + var repo = mocker.GetMock(); + repo.Setup(r => r.Exists(It.IsAny>>())).Returns(false).Verifiable(); + repo.Setup(r => r.Add(It.IsAny())).Returns(1); + + //Act + var result = mocker.Resolve().ImportNewFiles(@"C:\Test\30 Rock - 1x05 - Episode Title", series); + + //Assert + mocker.VerifyAllMocks(); + Assert.AreEqual(1, result.Count); + } } } \ No newline at end of file