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() .Setup(c => c.Start(It.IsAny())) .Returns(dummy); Mocker.Resolve().StartServer(); } [Test] public void should_set_iis_procces_id() { WithTempAsAppPath(); var dummy = StartDummyProcess(); Mocker.GetMock() .Setup(c => c.Start(It.IsAny())) .Returns(dummy); //act Mocker.Resolve().StartServer(); //assert Mocker.Resolve().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); } } }