using System; using Moq; using NUnit.Framework; using NzbDrone.Common; using NzbDrone.Core.Configuration; using NzbDrone.Core.MediaFiles; using NzbDrone.Core.Test.Framework; using NzbDrone.Test.Common; namespace NzbDrone.Core.Test.ProviderTests.RecycleBinProviderTests { [TestFixture] public class DeleteFileFixture : CoreTest { private void WithRecycleBin() { Mocker.GetMock().SetupGet(s => s.RecycleBin).Returns(@"C:\Test\Recycle Bin".AsOsAgnostic()); } private void WithoutRecycleBin() { Mocker.GetMock().SetupGet(s => s.RecycleBin).Returns(String.Empty); } [Test] public void should_use_delete_when_recycleBin_is_not_configured() { WithoutRecycleBin(); var path = @"C:\Test\TV\30 Rock\S01E01.avi".AsOsAgnostic(); Mocker.Resolve().DeleteFile(path); Mocker.GetMock().Verify(v => v.DeleteFile(path), Times.Once()); } [Test] public void should_use_move_when_recycleBin_is_configured() { WithRecycleBin(); var path = @"C:\Test\TV\30 Rock\S01E01.avi".AsOsAgnostic(); Mocker.Resolve().DeleteFile(path); Mocker.GetMock().Verify(v => v.MoveFile(path, @"C:\Test\Recycle Bin\S01E01.avi".AsOsAgnostic()), Times.Once()); } [Test] public void should_call_fileSetLastWriteTime_for_each_file() { WithRecycleBin(); var path = @"C:\Test\TV\30 Rock\S01E01.avi".AsOsAgnostic(); Mocker.Resolve().DeleteFile(path); Mocker.GetMock().Verify(v => v.FileSetLastWriteTimeUtc(@"C:\Test\Recycle Bin\S01E01.avi".AsOsAgnostic(), It.IsAny()), Times.Once()); } } }