public void AlternativeToolPathsThrowsWhenRegistryItemDoesNotExist( IISExpressSettingsTestImpl dummySettings, [Frozen] IRegistry registry, IISExpressRunnerTestImpl sut) { registry.LocalMachine.OpenKey(@"SOFTWARE\Microsoft\IISExpress") .Returns(null as IRegistryKey); sut.Invoking(_ => _.Access_GetAlternativeToolPaths(dummySettings).ToArray()) .ShouldThrow <CakeException>() .WithMessage("IIS Express is not installed on this machine."); }
public void AlternativeToolPathsShouldComeFromRegistry( IISExpressSettingsTestImpl dummySettings, [Frozen] IRegistry registry, IISExpressRunnerTestImpl sut) { registry.LocalMachine.OpenKey(@"SOFTWARE\Microsoft\IISExpress") .GetSubKeyNames() .Returns(new[] { "8.0", "10.0" }); registry.LocalMachine.OpenKey(@"SOFTWARE\Microsoft\IISExpress") .OpenKey("10.0") .GetValue("InstallPath") .Returns("MyIISExpressInstallPath"); var result = sut.Access_GetAlternativeToolPaths(dummySettings); result.Should() .HaveCount(1) .And.ContainSingle( r => r.FullPath.Equals(@"MyIISExpressInstallPath/IISExpress.exe", StringComparison.OrdinalIgnoreCase)); }