public void UpdatePackageFromUI() { // Arrange EnsureVisualStudioHost(); var dte = VisualStudio.Dte; var solutionService = VisualStudio.Get <SolutionService>(); solutionService.CreateEmptySolution(); var project = solutionService.AddProject(ProjectLanguage.CSharp, ProjectTemplate.ClassLibrary, ProjectTargetFramework.V46, "TestProject"); VisualStudio.ClearOutputWindow(); // Act dte.ExecuteCommand("Project.ManageNuGetPackages"); var nugetTestService = GetNuGetTestService(); var uiwindow = nugetTestService.GetUIWindowfromProject(project); uiwindow.InstallPackageFromUI("newtonsoft.json", "9.0.1"); // Assert VisualStudio.HasNoErrorsInErrorList(); VisualStudio.HasNoErrorsInOutputWindows(); Assert.True(uiwindow.IsPackageInstalled("newtonsoft.json", "9.0.1")); // Act VisualStudio.ClearOutputWindow(); uiwindow.UpdatePackageFromUI("newtonsoft.json", "10.0.3"); // Assert VisualStudio.HasNoErrorsInErrorList(); VisualStudio.HasNoErrorsInOutputWindows(); Assert.True(uiwindow.IsPackageInstalled("newtonsoft.json", "10.0.3")); }
public void InstallPackageFromPMCFromNuGetOrg(ProjectTemplate projectTemplate) { using (var pathContext = new SimpleTestPathContext()) { // Arrange EnsureVisualStudioHost(); var solutionService = VisualStudio.Get <SolutionService>(); solutionService.CreateEmptySolution("TestSolution", pathContext.SolutionRoot); var project = solutionService.AddProject(ProjectLanguage.CSharp, projectTemplate, ProjectTargetFramework.V46, "TestProject"); project.Build(); var nugetTestService = GetNuGetTestService(); Assert.True(nugetTestService.EnsurePackageManagerConsoleIsOpen()); var nugetConsole = nugetTestService.GetPackageManagerConsole(project.UniqueName); var packageName = "newtonsoft.json"; var packageVersion = "9.0.1"; Assert.True(nugetConsole.InstallPackageFromPMC(packageName, packageVersion, "https://api.nuget.org/v3/index.json")); Assert.True(Utils.IsPackageInstalled(nugetConsole, project.FullPath, packageName, packageVersion)); project.Build(); Assert.True(VisualStudio.HasNoErrorsInErrorList()); Assert.True(VisualStudio.HasNoErrorsInOutputWindows()); nugetConsole.Clear(); solutionService.Save(); } }
public async Task InstallPackageForPR_PackageNamespace_WithMultipleFeedsWithIdenticalPackages_InstallsCorrectPackage(ProjectTemplate projectTemplate) { // Arrange EnsureVisualStudioHost(); using var simpleTestPathContext = new SimpleTestPathContext(); string solutionDirectory = simpleTestPathContext.SolutionRoot; var packageName = "Contoso.A"; var packageVersion1 = "1.0.0"; var opensourceRepositoryPath = Path.Combine(solutionDirectory, "OpensourceRepository"); Directory.CreateDirectory(opensourceRepositoryPath); await CommonUtility.CreateNetFrameworkPackageInSourceAsync(opensourceRepositoryPath, packageName, packageVersion1); var privateRepositoryPath = Path.Combine(solutionDirectory, "PrivateRepository"); Directory.CreateDirectory(privateRepositoryPath); await CommonUtility.CreateNetFrameworkPackageInSourceAsync(privateRepositoryPath, packageName, packageVersion1); //Create nuget.config with Package namespace filtering rules. CommonUtility.CreateConfigurationFile(Path.Combine(solutionDirectory, "NuGet.Config"), $@"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageSources> <add key=""ExternalRepository"" value=""{opensourceRepositoryPath}"" /> <add key=""PrivateRepository"" value=""{privateRepositoryPath}"" /> </packageSources> <packageSourceMapping> <packageSource key=""externalRepository""> <package pattern=""External.*"" /> <package pattern=""Others.*"" /> </packageSource> <packageSource key=""PrivateRepository""> <package pattern=""Contoso.*"" /> <package pattern=""Test.*"" /> </packageSource> <packageSource key=""nuget""> <package pattern=""Microsoft.*"" /> <package pattern=""NetStandard*"" /> </packageSource> </packageSourceMapping> </configuration>"); using var testContext = new ApexTestContext(VisualStudio, projectTemplate, XunitLogger, noAutoRestore: false, addNetStandardFeeds: true, simpleTestPathContext: simpleTestPathContext); var nugetConsole = GetConsole(testContext.Project); // Act nugetConsole.InstallPackageFromPMC(packageName, packageVersion1); // Assert var expectedMessage = $"Installed {packageName} {packageVersion1} from {privateRepositoryPath}"; Assert.True(nugetConsole.IsMessageFoundInPMC(expectedMessage), expectedMessage); VisualStudio.AssertNuGetOutputDoesNotHaveErrors(); Assert.True(VisualStudio.HasNoErrorsInOutputWindows()); }
public void InstallAndUpdatePackageWithSourceParameterWarns(ProjectTemplate projectTemplate, bool warns, bool installationStatus) { EnsureVisualStudioHost(); var packageName = "TestPackage"; var packageVersion1 = "1.0.0"; var packageVersion2 = "2.0.0"; var source = "https://api.nuget.org/v3/index.json"; using (var testContext = new ApexTestContext(VisualStudio, projectTemplate)) { // Arrange var solutionService = VisualStudio.Get <SolutionService>(); testContext.Project.Build(); Utils.CreatePackageInSource(testContext.PackageSource, packageName, packageVersion1); Utils.CreatePackageInSource(testContext.PackageSource, packageName, packageVersion2); var nugetTestService = GetNuGetTestService(); var nugetConsole = GetConsole(testContext.Project); Assert.True(nugetTestService.EnsurePackageManagerConsoleIsOpen()); // Act nugetConsole.InstallPackageFromPMC(packageName, packageVersion1, source); testContext.Project.Build(); // Assert var expectedMessage = $"The 'Source' parameter is not respected for the transitive package management based project(s) {Path.GetFileNameWithoutExtension(testContext.Project.UniqueName)}. The enabled sources in your NuGet configuration will be used"; Assert.True(warns == nugetConsole.IsMessageFoundInPMC(expectedMessage), expectedMessage); if (installationStatus) { Utils.AssertPackageIsInstalled(GetNuGetTestService(), testContext.Project, packageName, packageVersion1); } VisualStudio.AssertNuGetOutputDoesNotHaveErrors(); Assert.True(VisualStudio.HasNoErrorsInOutputWindows()); // setup again nugetConsole.Clear(); // Act nugetConsole.UpdatePackageFromPMC(packageName, packageVersion2, source); testContext.Project.Build(); // Assert if (installationStatus) { Utils.AssertPackageIsInstalled(GetNuGetTestService(), testContext.Project, packageName, packageVersion2); Utils.AssertPackageIsNotInstalled(GetNuGetTestService(), testContext.Project, packageName, packageVersion1); } Assert.True(warns == nugetConsole.IsMessageFoundInPMC(expectedMessage), expectedMessage); VisualStudio.AssertNuGetOutputDoesNotHaveErrors(); Assert.True(VisualStudio.HasNoErrorsInOutputWindows()); nugetConsole.Clear(); solutionService.Save(); } }
public void UninstallMultiplePackagesFromPMC(ProjectTemplate projectTemplate) { using (var pathContext = new SimpleTestPathContext()) { // Arrange EnsureVisualStudioHost(); var solutionService = VisualStudio.Get <SolutionService>(); solutionService.CreateEmptySolution("TestSolution", pathContext.SolutionRoot); var project = solutionService.AddProject(ProjectLanguage.CSharp, projectTemplate, ProjectTargetFramework.V46, "TestProject"); project.Build(); var packageName1 = "TestPackage1"; var packageVersion1 = "1.0.0"; Utils.CreatePackageInSource(pathContext.PackageSource, packageName1, packageVersion1); var packageName2 = "TestPackage2"; var packageVersion2 = "1.2.3"; Utils.CreatePackageInSource(pathContext.PackageSource, packageName2, packageVersion2); var nugetTestService = GetNuGetTestService(); Assert.True(nugetTestService.EnsurePackageManagerConsoleIsOpen()); var nugetConsole = nugetTestService.GetPackageManagerConsole(project.Name); Assert.True(nugetConsole.InstallPackageFromPMC(packageName1, packageVersion1)); Assert.True(nugetConsole.InstallPackageFromPMC(packageName2, packageVersion2)); project.Build(); Assert.True(VisualStudio.HasNoErrorsInErrorList()); Assert.True(VisualStudio.HasNoErrorsInOutputWindows()); Assert.True(Utils.IsPackageInstalled(nugetConsole, project.FullPath, packageName1, packageVersion1)); Assert.True(Utils.IsPackageInstalled(nugetConsole, project.FullPath, packageName2, packageVersion2)); Assert.True(nugetConsole.UninstallPackageFromPMC(packageName1)); Assert.True(nugetConsole.UninstallPackageFromPMC(packageName2)); project.Build(); solutionService.SaveAll(); Assert.False(Utils.IsPackageInstalled(nugetConsole, project.FullPath, packageName1, packageVersion1)); Assert.False(Utils.IsPackageInstalled(nugetConsole, project.FullPath, packageName2, packageVersion2)); nugetConsole.Clear(); solutionService.Save(); } }
public async Task UpdateAllReinstall_WithPackageReferenceProject_WarnsAsync(ProjectTemplate projectTemplate, bool warns) { EnsureVisualStudioHost(); var packageName = "TestPackage"; var packageVersion1 = "1.0.0"; using var testContext = new ApexTestContext(VisualStudio, projectTemplate, XunitLogger, addNetStandardFeeds: true); // Arrange var solutionService = VisualStudio.Get <SolutionService>(); testContext.SolutionService.Build(); await CommonUtility.CreatePackageInSourceAsync(testContext.PackageSource, packageName, packageVersion1); var nugetTestService = GetNuGetTestService(); var nugetConsole = GetConsole(testContext.Project); // Pre-conditions nugetConsole.InstallPackageFromPMC(packageName, packageVersion1); testContext.SolutionService.Build(); VisualStudio.AssertNuGetOutputDoesNotHaveErrors(); VisualStudio.HasNoErrorsInOutputWindows().Should().BeTrue(); nugetConsole.Clear(); // Act nugetConsole.Execute("Update-Package -Reinstall"); // Assert var expectedMessage = $"The `-Reinstall` parameter does not apply to PackageReference based projects `{Path.GetFileNameWithoutExtension(testContext.Project.UniqueName)}`."; nugetConsole.IsMessageFoundInPMC(expectedMessage).Should().Be(warns, because: nugetConsole.GetText()); VisualStudio.AssertNuGetOutputDoesNotHaveErrors(); VisualStudio.HasNoErrorsInOutputWindows().Should().BeTrue(); nugetConsole.Clear(); solutionService.Save(); }