sonarr-repo-only/NzbDrone.App.Test/IISProviderFixture.cs

65 lines
1.8 KiB
C#

using System;
using System.Diagnostics;
using FluentAssertions;
using Moq;
using NUnit.Framework;
using Ninject;
using NzbDrone.Common;
using NzbDrone.Common.Model;
using NzbDrone.Providers;
using NzbDrone.Test.Common;
using NzbDrone.Test.Dummy;
namespace NzbDrone.App.Test
{
[TestFixture]
public class IISProviderFixture : TestBase
{
[Test]
public void should_update_pid_env_varibles()
{
WithTempAsAppPath();
var dummy = StartDummyProcess();
Environment.SetEnvironmentVariable(EnviromentProvider.NZBDRONE_PID, "0");
Environment.SetEnvironmentVariable(EnviromentProvider.NZBDRONE_PATH, "Test");
Mocker.GetMock<ProcessProvider>()
.Setup(c => c.Start(It.IsAny<ProcessStartInfo>()))
.Returns(dummy);
Mocker.Resolve<IISProvider>().StartServer();
}
[Test]
public void should_set_iis_procces_id()
{
WithTempAsAppPath();
var dummy = StartDummyProcess();
Mocker.GetMock<ProcessProvider>()
.Setup(c => c.Start(It.IsAny<ProcessStartInfo>()))
.Returns(dummy);
//act
Mocker.Resolve<IISProvider>().StartServer();
//assert
Mocker.Resolve<IISProvider>().IISProcessId.Should().Be(dummy.Id);
}
public Process StartDummyProcess()
{
var startInfo = new ProcessStartInfo(DummyApp.DUMMY_PROCCESS_NAME + ".exe");
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.CreateNoWindow = true;
return new ProcessProvider().Start(startInfo);
}
}
}