using Moq; using NUnit.Framework; using NzbDrone.Common.Disk; using NzbDrone.Core.Configuration; using NzbDrone.Core.HealthCheck.Checks; using NzbDrone.Core.Test.Framework; namespace NzbDrone.Core.Test.HealthCheck.Checks { [TestFixture] public class DroneFactoryCheckFixture : CoreTest { private const string DRONE_FACTORY_FOLDER = @"C:\Test\Unsorted"; private void GivenDroneFactoryFolder(bool exists = false, bool writable = true) { Mocker.GetMock() .SetupGet(s => s.DownloadedEpisodesFolder) .Returns(DRONE_FACTORY_FOLDER); Mocker.GetMock() .Setup(s => s.FolderExists(DRONE_FACTORY_FOLDER)) .Returns(exists); Mocker.GetMock() .Setup(s => s.FolderWritable(It.IsAny())) .Returns(exists && writable); } [Test] public void should_return_error_when_drone_factory_folder_does_not_exist() { GivenDroneFactoryFolder(); Subject.Check().ShouldBeError(); } [Test] public void should_return_error_when_unable_to_write_to_drone_factory_folder() { GivenDroneFactoryFolder(true, false); Subject.Check().ShouldBeError(); } [Test] public void should_return_ok_when_no_issues_found() { GivenDroneFactoryFolder(true); Subject.Check().ShouldBeOk(); } } }