using Microsoft.Win32; using Xunit; namespace Dotnet.Cli.Msi.Tests { public class PostUninstallTests : InstallFixture { private MsiManager _msiMgr; public PostUninstallTests() { _msiMgr = base.MsiManager; } [Fact] public void DotnetOnPathTest() { Assert.True(_msiMgr.IsInstalled); _msiMgr.UnInstall(); Assert.False(_msiMgr.IsInstalled); Assert.False(Utils.ExistsOnPath("dotnet.exe"), "After uninstallation dotnet tools must not be on path"); } [Fact] public void DotnetRegKeysTest() { Assert.True(_msiMgr.IsInstalled); _msiMgr.UnInstall(); Assert.False(_msiMgr.IsInstalled); var hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); Assert.Null(hklm.OpenSubKey(@"SOFTWARE\dotnet\Setup", false)); hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32); Assert.Null(hklm.OpenSubKey(@"SOFTWARE\dotnet\Setup", false)); } } }