public void UninstallPackageFromUI() { // Arrange EnsureVisualStudioHost(); var dte = VisualStudio.Dte; var solutionService = VisualStudio.Get <SolutionService>(); solutionService.CreateEmptySolution(); var project = solutionService.AddProject(ProjectLanguage.CSharp, ProjectTemplate.ClassLibrary, ProjectTargetFramework.V46, "TestProject"); FileInfo packagesConfigFile = GetPackagesConfigFile(project); dte.ExecuteCommand("Project.ManageNuGetPackages"); var nugetTestService = GetNuGetTestService(); var uiwindow = nugetTestService.GetUIWindowfromProject(project); uiwindow.InstallPackageFromUI("newtonsoft.json", "9.0.1"); WaitForFileExists(packagesConfigFile); VisualStudio.ClearWindows(); // Act uiwindow.UninstallPackageFromUI("newtonsoft.json"); WaitForFileNotExists(packagesConfigFile); // Assert CommonUtility.AssertPackageNotInPackagesConfig(VisualStudio, project, "newtonsoft.json", XunitLogger); }
public async Task InstallPackageFromUI_PackageNamespace_WithMultiFeed_Fails() { // Arrange EnsureVisualStudioHost(); var solutionService = VisualStudio.Get <SolutionService>(); string solutionDirectory = CommonUtility.CreateSolutionDirectory(Directory.GetCurrentDirectory()); solutionService.CreateEmptySolution("TestSolution", solutionDirectory); var externalRepositoryPath = Path.Combine(solutionService.ContainingDirectory, "ExternalRepository"); Directory.CreateDirectory(externalRepositoryPath); var privateRepositoryPath = Path.Combine(solutionService.ContainingDirectory, "PrivateRepository"); Directory.CreateDirectory(privateRepositoryPath); var packageName = "Contoso.A"; var packageVersion = "1.0.0"; await CommonUtility.CreatePackageInSourceAsync(externalRepositoryPath, packageName, packageVersion); // Create nuget.config with Package namespace filtering rules before project is created. CommonUtility.CreateConfigurationFile(Path.Combine(solutionDirectory, "NuGet.config"), $@"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageSources> <!--To inherit the global NuGet package sources remove the <clear/> line below --> <clear /> <add key=""ExternalRepository"" value=""{externalRepositoryPath}"" /> <add key=""PrivateRepository"" value=""{privateRepositoryPath}"" /> </packageSources> <packageNamespaces> <packageSource key=""externalRepository""> <namespace id=""External.*"" /> <namespace id=""Others.*"" /> </packageSource> <packageSource key=""PrivateRepository""> <namespace id=""Contoso.*"" /> <namespace id=""Test.*"" /> </packageSource> </packageNamespaces> //</configuration>"); var project = solutionService.AddProject(ProjectLanguage.CSharp, ProjectTemplate.ClassLibrary, ProjectTargetFramework.V46, "TestProject"); VisualStudio.ClearOutputWindow(); solutionService.SaveAll(); // Act OpenNuGetPackageManagerWithDte(); var nugetTestService = GetNuGetTestService(); var uiwindow = nugetTestService.GetUIWindowfromProject(project); uiwindow.InstallPackageFromUI("contoso.a", "1.0.0"); // Assert // Even though Contoso.a exist in ExternalRepository, but PackageNamespaces filter doesn't let restore from it. CommonUtility.AssertPackageNotInPackagesConfig(VisualStudio, project, "contoso.a", XunitLogger); }
public async Task UninstallFromPMCForPC_SucceedAsync(ProjectTemplate projectTemplate) { // Arrange EnsureVisualStudioHost(); var signedPackage = _fixture.AuthorSignedTestPackage; using (var testContext = new ApexTestContext(VisualStudio, projectTemplate, XunitLogger)) { await SimpleTestPackageUtility.CreatePackagesAsync(testContext.PackageSource, signedPackage); var nugetConsole = GetConsole(testContext.Project); nugetConsole.InstallPackageFromPMC(signedPackage.Id, signedPackage.Version); nugetConsole.UninstallPackageFromPMC(signedPackage.Id); CommonUtility.AssertPackageNotInPackagesConfig(VisualStudio, testContext.Project, signedPackage.Id, signedPackage.Version, XunitLogger); } }
public async Task UninstallPackageFromPMCForPCAsync(ProjectTemplate projectTemplate) { // Arrange EnsureVisualStudioHost(); using (var testContext = new ApexTestContext(VisualStudio, projectTemplate, XunitLogger)) { var packageName = "TestPackage"; var packageVersion = "1.0.0"; await CommonUtility.CreatePackageInSourceAsync(testContext.PackageSource, packageName, packageVersion); var nugetConsole = GetConsole(testContext.Project); nugetConsole.InstallPackageFromPMC(packageName, packageVersion); nugetConsole.UninstallPackageFromPMC(packageName); CommonUtility.AssertPackageNotInPackagesConfig(VisualStudio, testContext.Project, packageName, packageVersion, XunitLogger); } }
public void SimpleUninstallFromIVsInstaller() { // Arrange EnsureVisualStudioHost(); var solutionService = VisualStudio.Get <SolutionService>(); var nugetTestService = GetNuGetTestService(); solutionService.CreateEmptySolution(); var projExt = solutionService.AddProject(ProjectLanguage.CSharp, ProjectTemplate.ClassLibrary, ProjectTargetFramework.V46, "TestProject"); var dte = VisualStudio.Dte; var project = dte.Solution.Projects.Item(1); nugetTestService.InstallPackage(project.UniqueName, "newtonsoft.json"); // Act nugetTestService.UninstallPackage(project.UniqueName, "newtonsoft.json"); // Assert CommonUtility.AssertPackageNotInPackagesConfig(VisualStudio, projExt, "newtonsoft.json", XunitLogger); }
public async Task Tampered_InstallFromPMCForPC_FailAsync(ProjectTemplate projectTemplate) { // Arrange EnsureVisualStudioHost(); var signedPackage = _fixture.AuthorSignedTestPackage; using (var testContext = new ApexTestContext(VisualStudio, projectTemplate, XunitLogger)) { await SimpleTestPackageUtility.CreatePackagesAsync(testContext.PackageSource, signedPackage); SignedArchiveTestUtility.TamperWithPackage(Path.Combine(testContext.PackageSource, signedPackage.PackageName)); var nugetConsole = GetConsole(testContext.Project); nugetConsole.InstallPackageFromPMC(signedPackage.Id, signedPackage.Version); nugetConsole.IsMessageFoundInPMC("package integrity check failed").Should().BeTrue("Integrity failed message shown."); CommonUtility.AssertPackageNotInPackagesConfig(VisualStudio, testContext.Project, signedPackage.Id, signedPackage.Version, XunitLogger); } }
public async Task UninstallMultiplePackagesFromPMCForPCAsync(ProjectTemplate projectTemplate) { // Arrange EnsureVisualStudioHost(); var packageName1 = "TestPackage1"; var packageVersion1 = "1.0.0"; var packageName2 = "TestPackage2"; var packageVersion2 = "1.2.3"; using (var testContext = new ApexTestContext(VisualStudio, projectTemplate, XunitLogger)) { await CommonUtility.CreatePackageInSourceAsync(testContext.PackageSource, packageName1, packageVersion1); await CommonUtility.CreatePackageInSourceAsync(testContext.PackageSource, packageName2, packageVersion2); var nugetConsole = GetConsole(testContext.Project); nugetConsole.InstallPackageFromPMC(packageName1, packageVersion1); testContext.SolutionService.Build(); testContext.NuGetApexTestService.WaitForAutoRestore(); nugetConsole.InstallPackageFromPMC(packageName2, packageVersion2); testContext.SolutionService.Build(); testContext.NuGetApexTestService.WaitForAutoRestore(); nugetConsole.UninstallPackageFromPMC(packageName1); testContext.SolutionService.Build(); testContext.NuGetApexTestService.WaitForAutoRestore(); nugetConsole.UninstallPackageFromPMC(packageName2); testContext.SolutionService.Build(); testContext.NuGetApexTestService.WaitForAutoRestore(); CommonUtility.AssertPackageNotInPackagesConfig(VisualStudio, testContext.Project, packageName1, packageVersion1, XunitLogger); CommonUtility.AssertPackageNotInPackagesConfig(VisualStudio, testContext.Project, packageName2, packageVersion2, XunitLogger); } }