better routing.
This commit is contained in:
parent
3b4eacdd31
commit
ddff598ba4
|
@ -58,11 +58,8 @@ namespace NzbDrone.App.Test
|
||||||
Mocker.GetMock<INzbDroneServiceFactory>().Verify(c => c.Start(), Times.Once());
|
Mocker.GetMock<INzbDroneServiceFactory>().Verify(c => c.Start(), Times.Once());
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase(ApplicationModes.Interactive)]
|
[Test]
|
||||||
[TestCase(ApplicationModes.InstallService)]
|
public void Route_should_call_service_start_when_run_in_service_mode()
|
||||||
[TestCase(ApplicationModes.UninstallService)]
|
|
||||||
[TestCase(ApplicationModes.Help)]
|
|
||||||
public void Route_should_call_service_start_when_run_in_service_mode(ApplicationModes applicationModes)
|
|
||||||
{
|
{
|
||||||
var envMock = Mocker.GetMock<IRuntimeInfo>();
|
var envMock = Mocker.GetMock<IRuntimeInfo>();
|
||||||
var serviceProvider = Mocker.GetMock<IServiceProvider>();
|
var serviceProvider = Mocker.GetMock<IServiceProvider>();
|
||||||
|
@ -71,8 +68,9 @@ namespace NzbDrone.App.Test
|
||||||
|
|
||||||
serviceProvider.Setup(c => c.Run(It.IsAny<ServiceBase>()));
|
serviceProvider.Setup(c => c.Run(It.IsAny<ServiceBase>()));
|
||||||
serviceProvider.Setup(c => c.ServiceExist(It.IsAny<string>())).Returns(true);
|
serviceProvider.Setup(c => c.ServiceExist(It.IsAny<string>())).Returns(true);
|
||||||
|
serviceProvider.Setup(c => c.GetStatus(It.IsAny<string>())).Returns(ServiceControllerStatus.StartPending);
|
||||||
|
|
||||||
Subject.Route(applicationModes);
|
Subject.Route();
|
||||||
|
|
||||||
serviceProvider.Verify(c => c.Run(It.IsAny<ServiceBase>()), Times.Once());
|
serviceProvider.Verify(c => c.Run(It.IsAny<ServiceBase>()), Times.Once());
|
||||||
}
|
}
|
||||||
|
@ -90,7 +88,6 @@ namespace NzbDrone.App.Test
|
||||||
|
|
||||||
Subject.Route(ApplicationModes.InstallService);
|
Subject.Route(ApplicationModes.InstallService);
|
||||||
|
|
||||||
Mocker.VerifyAllMocks();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -105,7 +102,6 @@ namespace NzbDrone.App.Test
|
||||||
|
|
||||||
Subject.Route(ApplicationModes.UninstallService);
|
Subject.Route(ApplicationModes.UninstallService);
|
||||||
|
|
||||||
Mocker.VerifyAllMocks();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ namespace NzbDrone.Common
|
||||||
ServiceController GetService(string serviceName);
|
ServiceController GetService(string serviceName);
|
||||||
void Stop(string serviceName);
|
void Stop(string serviceName);
|
||||||
void Start(string serviceName);
|
void Start(string serviceName);
|
||||||
|
ServiceControllerStatus GetStatus(string serviceName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ServiceProvider : IServiceProvider
|
public class ServiceProvider : IServiceProvider
|
||||||
|
@ -136,7 +137,13 @@ namespace NzbDrone.Common
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Start(string serviceName)
|
|
||||||
|
public ServiceControllerStatus GetStatus(string serviceName)
|
||||||
|
{
|
||||||
|
return GetService(serviceName).Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Start(string serviceName)
|
||||||
{
|
{
|
||||||
Logger.Info("Starting {0} Service...", serviceName);
|
Logger.Info("Starting {0} Service...", serviceName);
|
||||||
var service = GetService(serviceName);
|
var service = GetService(serviceName);
|
||||||
|
|
|
@ -93,6 +93,14 @@ namespace NzbDrone.Host
|
||||||
|
|
||||||
private ApplicationModes GetApplicationMode()
|
private ApplicationModes GetApplicationMode()
|
||||||
{
|
{
|
||||||
|
if (!_runtimeInfo.IsUserInteractive &&
|
||||||
|
OsInfo.IsWindows &&
|
||||||
|
_serviceProvider.ServiceExist(ServiceProvider.NZBDRONE_SERVICE_NAME) &&
|
||||||
|
_serviceProvider.GetStatus(ServiceProvider.NZBDRONE_SERVICE_NAME) == ServiceControllerStatus.StartPending)
|
||||||
|
{
|
||||||
|
return ApplicationModes.Service;
|
||||||
|
}
|
||||||
|
|
||||||
if (_startupArguments.Flags.Contains(StartupArguments.HELP))
|
if (_startupArguments.Flags.Contains(StartupArguments.HELP))
|
||||||
{
|
{
|
||||||
return ApplicationModes.Help;
|
return ApplicationModes.Help;
|
||||||
|
@ -108,14 +116,6 @@ namespace NzbDrone.Host
|
||||||
return ApplicationModes.UninstallService;
|
return ApplicationModes.UninstallService;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_runtimeInfo.IsUserInteractive &&
|
|
||||||
OsInfo.IsWindows &&
|
|
||||||
_serviceProvider.ServiceExist(ServiceProvider.NZBDRONE_SERVICE_NAME) &&
|
|
||||||
_serviceProvider.GetService(ServiceProvider.NZBDRONE_SERVICE_NAME).Status == ServiceControllerStatus.StartPending)
|
|
||||||
{
|
|
||||||
return ApplicationModes.Service;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ApplicationModes.Interactive;
|
return ApplicationModes.Interactive;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue