New: Health check for AppData and Startup folder conflict

This commit is contained in:
Mark McDowall
2014-06-07 12:19:37 -07:00
parent 519b6debfb
commit ebd13bdda8
7 changed files with 131 additions and 7 deletions
@@ -0,0 +1,54 @@
using NUnit.Framework;
using NzbDrone.Common.EnvironmentInfo;
using NzbDrone.Core.HealthCheck.Checks;
using NzbDrone.Core.Test.Framework;
using NzbDrone.Test.Common;
namespace NzbDrone.Core.Test.HealthCheck.Checks
{
[TestFixture]
public class AppDataLocationFixture : CoreTest<AppDataLocationCheck>
{
[Test]
public void should_return_warning_when_app_data_is_child_of_startup_folder()
{
Mocker.GetMock<IAppFolderInfo>()
.Setup(s => s.StartUpFolder)
.Returns(@"C:\NzbDrone".AsOsAgnostic());
Mocker.GetMock<IAppFolderInfo>()
.Setup(s => s.AppDataFolder)
.Returns(@"C:\NzbDrone\AppData".AsOsAgnostic());
Subject.Check().ShouldBeWarning();
}
[Test]
public void should_return_warning_when_app_data_is_same_as_startup_folder()
{
Mocker.GetMock<IAppFolderInfo>()
.Setup(s => s.StartUpFolder)
.Returns(@"C:\NzbDrone".AsOsAgnostic());
Mocker.GetMock<IAppFolderInfo>()
.Setup(s => s.AppDataFolder)
.Returns(@"C:\NzbDrone".AsOsAgnostic());
Subject.Check().ShouldBeWarning();
}
[Test]
public void should_return_ok_when_no_conflict()
{
Mocker.GetMock<IAppFolderInfo>()
.Setup(s => s.StartUpFolder)
.Returns(@"C:\NzbDrone".AsOsAgnostic());
Mocker.GetMock<IAppFolderInfo>()
.Setup(s => s.AppDataFolder)
.Returns(@"C:\ProgramData\NzbDrone".AsOsAgnostic());
Subject.Check().ShouldBeOk();
}
}
}
@@ -1,10 +1,9 @@
using System;
using FluentAssertions;
using Moq;
using NUnit.Framework;
using NzbDrone.Common.Disk;
using NzbDrone.Common.EnvironmentInfo;
using NzbDrone.Core.HealthCheck;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.HealthCheck.Checks;
using NzbDrone.Core.Test.Framework;
@@ -28,5 +27,25 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
Subject.Check().ShouldBeError();
}
[Test]
public void should_return_error_when_app_folder_is_write_protected_and_update_automatically_is_enabled()
{
MonoOnly();
Mocker.GetMock<IConfigFileProvider>()
.Setup(s => s.UpdateAutomatically)
.Returns(true);
Mocker.GetMock<IAppFolderInfo>()
.Setup(s => s.StartUpFolder)
.Returns(@"/opt/nzbdrone");
Mocker.GetMock<IDiskProvider>()
.Setup(s => s.WriteAllText(It.IsAny<String>(), It.IsAny<String>()))
.Throws<Exception>();
Subject.Check().ShouldBeError();
}
}
}