mirror of
https://github.com/lidarr/lidarr.git
synced 2025-07-16 10:03:51 -07:00
More work on WindowsService, still broken
This commit is contained in:
parent
6b7923bd52
commit
6f3065d5ab
13 changed files with 289 additions and 183 deletions
121
NzbDrone.App.Test/RouterTest.cs
Normal file
121
NzbDrone.App.Test/RouterTest.cs
Normal file
|
@ -0,0 +1,121 @@
|
|||
using AutoMoq;
|
||||
using FluentAssertions;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using NzbDrone.Model;
|
||||
using NzbDrone.Providers;
|
||||
|
||||
namespace NzbDrone.App.Test
|
||||
{
|
||||
[TestFixture]
|
||||
public class RouterTest
|
||||
{
|
||||
|
||||
[TestCase(null, ApplicationMode.Console)]
|
||||
[TestCase("", ApplicationMode.Console)]
|
||||
[TestCase("1", ApplicationMode.Help)]
|
||||
[TestCase("ii", ApplicationMode.Help)]
|
||||
[TestCase("uu", ApplicationMode.Help)]
|
||||
[TestCase("i", ApplicationMode.InstallService)]
|
||||
[TestCase("I", ApplicationMode.InstallService)]
|
||||
[TestCase("/I", ApplicationMode.InstallService)]
|
||||
[TestCase("/i", ApplicationMode.InstallService)]
|
||||
[TestCase("-I", ApplicationMode.InstallService)]
|
||||
[TestCase("-i", ApplicationMode.InstallService)]
|
||||
[TestCase("u", ApplicationMode.UninstallService)]
|
||||
[TestCase("U", ApplicationMode.UninstallService)]
|
||||
[TestCase("/U", ApplicationMode.UninstallService)]
|
||||
[TestCase("/u", ApplicationMode.UninstallService)]
|
||||
[TestCase("-U", ApplicationMode.UninstallService)]
|
||||
[TestCase("-u", ApplicationMode.UninstallService)]
|
||||
public void GetApplicationMode_single_arg(string arg, ApplicationMode mode)
|
||||
{
|
||||
Router.GetApplicationMode(new[] { arg }).Should().Be(mode);
|
||||
}
|
||||
|
||||
[TestCase("", "", ApplicationMode.Console)]
|
||||
[TestCase("", null, ApplicationMode.Console)]
|
||||
[TestCase("i", "n", ApplicationMode.Help)]
|
||||
public void GetApplicationMode_two_args(string a, string b, ApplicationMode mode)
|
||||
{
|
||||
Router.GetApplicationMode(new[] { a, b }).Should().Be(mode);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Route_should_call_install_service_when_application_mode_is_install()
|
||||
{
|
||||
var mocker = new AutoMoqer(MockBehavior.Strict);
|
||||
var serviceProviderMock = mocker.GetMock<ServiceProvider>();
|
||||
serviceProviderMock.Setup(c => c.Install());
|
||||
mocker.GetMock<EnviromentProvider>().SetupGet(c => c.IsRunningAsService).Returns(false);
|
||||
|
||||
mocker.Resolve<Router>().Route(ApplicationMode.InstallService);
|
||||
|
||||
serviceProviderMock.Verify(c => c.Install(), Times.Once());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Route_should_call_uninstall_service_when_application_mode_is_uninstall()
|
||||
{
|
||||
var mocker = new AutoMoqer(MockBehavior.Strict);
|
||||
var serviceProviderMock = mocker.GetMock<ServiceProvider>();
|
||||
serviceProviderMock.Setup(c => c.UnInstall());
|
||||
mocker.GetMock<EnviromentProvider>().SetupGet(c => c.IsRunningAsService).Returns(false);
|
||||
|
||||
mocker.Resolve<Router>().Route(ApplicationMode.UninstallService);
|
||||
|
||||
serviceProviderMock.Verify(c => c.UnInstall(), Times.Once());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Route_should_call_console_service_when_application_mode_is_console()
|
||||
{
|
||||
var mocker = new AutoMoqer(MockBehavior.Strict);
|
||||
var consoleProvider = mocker.GetMock<ConsoleProvider>();
|
||||
var appServerProvider = mocker.GetMock<ApplicationServer>();
|
||||
consoleProvider.Setup(c => c.WaitForClose());
|
||||
appServerProvider.Setup(c => c.Start());
|
||||
mocker.GetMock<EnviromentProvider>().SetupGet(c => c.IsRunningAsService).Returns(false);
|
||||
|
||||
mocker.Resolve<Router>().Route(ApplicationMode.Console);
|
||||
|
||||
consoleProvider.Verify(c => c.WaitForClose(), Times.Once());
|
||||
appServerProvider.Verify(c => c.Start(), Times.Once());
|
||||
}
|
||||
|
||||
[TestCase(ApplicationMode.Console)]
|
||||
[TestCase(ApplicationMode.InstallService)]
|
||||
[TestCase(ApplicationMode.UninstallService)]
|
||||
[TestCase(ApplicationMode.Help)]
|
||||
public void Route_should_call_service_start_when_run_in_service_more(ApplicationMode applicationMode)
|
||||
{
|
||||
var mocker = new AutoMoqer(MockBehavior.Strict);
|
||||
var envMock = mocker.GetMock<EnviromentProvider>();
|
||||
var appServerMock = mocker.GetMock<ApplicationServer>();
|
||||
|
||||
envMock.SetupGet(c => c.IsRunningAsService).Returns(true);
|
||||
appServerMock.Setup(c => c.StartService());
|
||||
|
||||
mocker.Resolve<Router>().Route(applicationMode);
|
||||
|
||||
appServerMock.Verify(c => c.StartService(), Times.Once());
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public void show_error_on_install_if_service_already_exist()
|
||||
{
|
||||
var mocker = new AutoMoqer(MockBehavior.Strict);
|
||||
var consoleMock = mocker.GetMock<ConsoleProvider>();
|
||||
var serviceMock = mocker.GetMock<ServiceProvider>();
|
||||
mocker.GetMock<EnviromentProvider>().SetupGet(c => c.IsRunningAsService).Returns(false);
|
||||
|
||||
consoleMock.Setup(c => c.PrintServiceAlreadyExist());
|
||||
serviceMock.Setup(c => c.ServiceExist(ServiceProvider.NzbDroneServiceName)).Returns(true);
|
||||
|
||||
mocker.Resolve<Router>().Route(ApplicationMode.InstallService);
|
||||
|
||||
mocker.VerifyAllMocks();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue