public async Task DowngradePackageFromPMCForPRAsync(ProjectTemplate projectTemplate) { // Arrange EnsureVisualStudioHost(); var packageName = "TestPackage"; var packageVersion1 = "1.0.0"; var packageVersion2 = "2.0.0"; using (var testContext = new ApexTestContext(VisualStudio, projectTemplate, XunitLogger)) { await CommonUtility.CreatePackageInSourceAsync(testContext.PackageSource, packageName, packageVersion1); await CommonUtility.CreatePackageInSourceAsync(testContext.PackageSource, packageName, packageVersion2); var nugetConsole = GetConsole(testContext.Project); nugetConsole.InstallPackageFromPMC(packageName, packageVersion2); testContext.Project.Build(); testContext.NuGetApexTestService.WaitForAutoRestore(); nugetConsole.UpdatePackageFromPMC(packageName, packageVersion1); testContext.Project.Build(); CommonUtility.AssertPackageReferenceExists(VisualStudio, testContext.Project, packageName, packageVersion1, XunitLogger); CommonUtility.AssertPackageInAssetsFile(VisualStudio, testContext.Project, packageName, packageVersion1, XunitLogger); } }
public async Task UpdateUnsignedToSignedVersionFromPMCForPR_SucceedAsync(ProjectTemplate projectTemplate) { // Arrange EnsureVisualStudioHost(); var packageVersion09 = "0.9.0"; var signedPackage = _fixture.AuthorSignedTestPackage; using (var testContext = new ApexTestContext(VisualStudio, projectTemplate, XunitLogger)) { await CommonUtility.CreatePackageInSourceAsync(testContext.PackageSource, signedPackage.Id, packageVersion09); await SimpleTestPackageUtility.CreatePackagesAsync(testContext.PackageSource, signedPackage); var nugetConsole = GetConsole(testContext.Project); nugetConsole.InstallPackageFromPMC(signedPackage.Id, packageVersion09); testContext.SolutionService.Build(); testContext.NuGetApexTestService.WaitForAutoRestore(); nugetConsole.UpdatePackageFromPMC(signedPackage.Id, signedPackage.Version); testContext.SolutionService.Build(); testContext.NuGetApexTestService.WaitForAutoRestore(); CommonUtility.AssertPackageReferenceExists(VisualStudio, testContext.Project, signedPackage.Id, signedPackage.Version, XunitLogger); } }
public async Task DowngradeSignedToUnsignedVersionFromPMCForPC_SucceedAsync(ProjectTemplate projectTemplate) { // Arrange EnsureVisualStudioHost(); // This test is not considered an ideal behavior of the product but states the current behavior. // A package that is already installed as signed should be specailly treated and a user should not be // able to downgrade to an unsigned version. This test needs to be updated once this behavior gets // corrected in the product. var packageVersion09 = "0.9.0"; var signedPackage = _fixture.AuthorSignedTestPackage; using (var testContext = new ApexTestContext(VisualStudio, projectTemplate, XunitLogger)) { await CommonUtility.CreatePackageInSourceAsync(testContext.PackageSource, signedPackage.Id, packageVersion09); await SimpleTestPackageUtility.CreatePackagesAsync(testContext.PackageSource, signedPackage); var nugetConsole = GetConsole(testContext.Project); nugetConsole.InstallPackageFromPMC(signedPackage.Id, signedPackage.Version); nugetConsole.UpdatePackageFromPMC(signedPackage.Id, packageVersion09); CommonUtility.AssetPackageInPackagesConfig(VisualStudio, testContext.Project, signedPackage.Id, packageVersion09, 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 WithSourceMappingEnabled_InstallPackageFromPMUIAndNoSourcesFound_Fails(ProjectTemplate projectTemplate) { // Arrange EnsureVisualStudioHost(); using (var simpleTestPathContext = new SimpleTestPathContext()) { string solutionDirectory = simpleTestPathContext.SolutionRoot; var privateRepositoryPath = Path.Combine(solutionDirectory, "PrivateRepository"); Directory.CreateDirectory(privateRepositoryPath); var externalRepositoryPath = Path.Combine(solutionDirectory, "ExternalRepository"); Directory.CreateDirectory(externalRepositoryPath); var packageName = "Contoso.a"; var packageVersion = "1.0.0"; await CommonUtility.CreatePackageInSourceAsync(externalRepositoryPath, packageName, packageVersion); // Create nuget.config with Package source mapping filtering rules before project is created. CommonUtility.CreateConfigurationFile(Path.Combine(solutionDirectory, "NuGet.Config"), $@"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageSources> <add key=""ExternalRepository"" value=""{externalRepositoryPath}"" /> <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, addNetStandardFeeds: true, simpleTestPathContext: simpleTestPathContext)) { VisualStudio.AssertNoErrors(); // Act CommonUtility.OpenNuGetPackageManagerWithDte(VisualStudio, XunitLogger); var nugetTestService = GetNuGetTestService(); var uiwindow = nugetTestService.GetUIWindowfromProject(testContext.SolutionService.Projects[0]); uiwindow.InstallPackageFromUI(packageName, packageVersion); // Assert CommonUtility.AssertPackageReferenceDoesNotExist(VisualStudio, testContext.SolutionService.Projects[0], packageName, packageVersion, XunitLogger); } } }
public async Task InstallPackageToProjectsFromUI_PC_PackageSourceMapping_WithSingleFeed_Match_Succeeds() { // Arrange EnsureVisualStudioHost(); var solutionService = VisualStudio.Get <SolutionService>(); string solutionDirectory = CommonUtility.CreateSolutionDirectory(Directory.GetCurrentDirectory()); var privateRepositoryPath = Path.Combine(solutionDirectory, "PrivateRepository"); Directory.CreateDirectory(privateRepositoryPath); var packageName = "Contoso.A"; var packageVersion = "1.0.0"; await CommonUtility.CreatePackageInSourceAsync(privateRepositoryPath, packageName, packageVersion); // Create nuget.config with Package source mapping 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=""PrivateRepository"" value=""{privateRepositoryPath}"" /> </packageSources> <packageSourceMapping> <packageSource key=""PrivateRepository""> <package pattern=""Contoso.*"" /> <package pattern=""Test.*"" /> </packageSource> </packageSourceMapping> </configuration>"); solutionService.CreateEmptySolution("TestSolution", solutionDirectory); var project = solutionService.AddProject(ProjectLanguage.CSharp, ProjectTemplate.ClassLibrary, ProjectTargetFramework.V46, "TestProject"); var nuProject = solutionService.AddProject(ProjectLanguage.CSharp, ProjectTemplate.ClassLibrary, ProjectTargetFramework.V46, "NuProject"); solutionService.SaveAll(); // Act CommonUtility.OpenNuGetPackageManagerWithDte(VisualStudio, XunitLogger); var nugetTestService = GetNuGetTestService(); var uiwindow = nugetTestService.GetUIWindowfromProject(nuProject); uiwindow.InstallPackageFromUI("contoso.a", "1.0.0"); VisualStudio.SelectProjectInSolutionExplorer(project.Name); CommonUtility.OpenNuGetPackageManagerWithDte(VisualStudio, XunitLogger); VisualStudio.ClearOutputWindow(); var uiwindow2 = nugetTestService.GetUIWindowfromProject(project); uiwindow2.InstallPackageFromUI("contoso.a", "1.0.0"); // Assert CommonUtility.AssertPackageInPackagesConfig(VisualStudio, project, "contoso.a", "1.0.0", XunitLogger); CommonUtility.AssertPackageInPackagesConfig(VisualStudio, nuProject, "contoso.a", "1.0.0", XunitLogger); }
public async Task InstallAndUpdatePackageWithSourceParameterWarnsAsync(ProjectTemplate projectTemplate, bool warns) { 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, XunitLogger, addNetStandardFeeds: true)) { // Arrange var solutionService = VisualStudio.Get <SolutionService>(); testContext.SolutionService.Build(); await CommonUtility.CreatePackageInSourceAsync(testContext.PackageSource, packageName, packageVersion1); await CommonUtility.CreatePackageInSourceAsync(testContext.PackageSource, packageName, packageVersion2); var nugetTestService = GetNuGetTestService(); var nugetConsole = GetConsole(testContext.Project); // Act nugetConsole.InstallPackageFromPMC(packageName, packageVersion1, source); testContext.SolutionService.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); VisualStudio.AssertNuGetOutputDoesNotHaveErrors(); Assert.True(VisualStudio.HasNoErrorsInOutputWindows()); // setup again nugetConsole.Clear(); // Act nugetConsole.UpdatePackageFromPMC(packageName, packageVersion2, source); testContext.SolutionService.Build(); // Assert Assert.True(warns == nugetConsole.IsMessageFoundInPMC(expectedMessage), expectedMessage); VisualStudio.AssertNuGetOutputDoesNotHaveErrors(); Assert.True(VisualStudio.HasNoErrorsInOutputWindows()); nugetConsole.Clear(); solutionService.Save(); } }
public async Task UpdatePackageForPC_PackageNamespace_WithSingleFeed(ProjectTemplate projectTemplate) { // Arrange EnsureVisualStudioHost(); using var simpleTestPathContext = new SimpleTestPathContext(); string solutionDirectory = simpleTestPathContext.SolutionRoot; var privateRepositoryPath = Path.Combine(solutionDirectory, "PrivateRepository"); Directory.CreateDirectory(privateRepositoryPath); var packageName = "Contoso.A"; var packageVersion1 = "1.0.0"; var packageVersion2 = "2.0.0"; await CommonUtility.CreatePackageInSourceAsync(privateRepositoryPath, packageName, packageVersion1); await CommonUtility.CreatePackageInSourceAsync(privateRepositoryPath, packageName, packageVersion2); //Create nuget.config with Package namespace filtering rules. 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=""PrivateRepository"" value=""{privateRepositoryPath}"" /> </packageSources> <packageNamespaces> <packageSource key=""PrivateRepository""> <namespace id=""Contoso.*"" /> <namespace id=""Test.*"" /> </packageSource> </packageNamespaces> //</configuration>"); using (var testContext = new ApexTestContext(VisualStudio, projectTemplate, XunitLogger, noAutoRestore: false, addNetStandardFeeds: false, simpleTestPathContext: simpleTestPathContext)) { var nugetConsole = GetConsole(testContext.Project); // Act nugetConsole.InstallPackageFromPMC(packageName, packageVersion1); nugetConsole.UpdatePackageFromPMC(packageName, packageVersion2); // Assert CommonUtility.AssertPackageInPackagesConfig(VisualStudio, testContext.Project, packageName, packageVersion2, XunitLogger); } }
public async Task SimpleInstallFromIVsInstaller_PackageSourceMapping_WithSingleFeed() { // Arrange EnsureVisualStudioHost(); var dte = VisualStudio.Dte; string mainDirectory = CommonUtility.CreateSolutionDirectory(Directory.GetCurrentDirectory()); string solutionDirectory = Path.Combine(mainDirectory, "Solution"); var solutionService = VisualStudio.Get <SolutionService>(); var nugetTestService = GetNuGetTestService(); var privateRepositoryPath = Path.Combine(mainDirectory, "PrivateRepository"); Directory.CreateDirectory(privateRepositoryPath); var packageName = "Contoso.A"; var packageVersion = "1.0.0"; await CommonUtility.CreatePackageInSourceAsync(privateRepositoryPath, packageName, packageVersion); // Create nuget.config with Package source mapping filtering rules before project is created. CommonUtility.CreateConfigurationFile(Path.Combine(mainDirectory, "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=""PrivateRepository"" value=""{privateRepositoryPath}"" /> </packageSources> <packageSourceMapping> <packageSource key=""PrivateRepository""> <package pattern=""Contoso.*"" /> <package pattern=""Test.*"" /> </packageSource> </packageSourceMapping> </configuration>"); solutionService.CreateEmptySolution("TestSolution", solutionDirectory); var projExt = solutionService.AddProject(ProjectLanguage.CSharp, ProjectTemplate.ClassLibrary, ProjectTargetFramework.V46, "TestProject"); solutionService.SaveAll(); var project = dte.Solution.Projects.Item(1); // Act nugetTestService.InstallPackage(project.UniqueName, "contoso.a"); // Assert CommonUtility.AssertPackageInPackagesConfig(VisualStudio, projExt, packageName, XunitLogger); }
public async Task InstallPackageFromPMCVerifyInstallForPCAsync(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); CommonUtility.AssertPackageInPackagesConfig(VisualStudio, testContext.Project, packageName, packageVersion, XunitLogger); } }
public async Task InstallPackageFromPMCWithNoAutoRestoreVerifyAssetsFileAsync(ProjectTemplate projectTemplate) { // Arrange EnsureVisualStudioHost(); using (var testContext = new ApexTestContext(VisualStudio, projectTemplate, XunitLogger, noAutoRestore: true, addNetStandardFeeds: true)) { var packageName = "TestPackage"; var packageVersion = "1.0.0"; await CommonUtility.CreatePackageInSourceAsync(testContext.PackageSource, packageName, packageVersion); var nugetConsole = GetConsole(testContext.Project); nugetConsole.InstallPackageFromPMC(packageName, packageVersion); CommonUtility.AssertPackageInAssetsFile(VisualStudio, testContext.Project, packageName, packageVersion, XunitLogger); } }
public async Task UpdatePackageFromPMCForPRAsync(ProjectTemplate projectTemplate, string flag, string expectedVersion) { // Arrange EnsureVisualStudioHost(); using (var testContext = new ApexTestContext(VisualStudio, projectTemplate, XunitLogger)) { var packageName = "TestPackage"; var packageVersion1 = "1.0.0"; var packageVersion2 = "2.0.0"; var packageVersion3 = "1.0.1"; var packageVersion4 = "1.1.0"; await CommonUtility.CreatePackageInSourceAsync(testContext.PackageSource, packageName, packageVersion1); await CommonUtility.CreatePackageInSourceAsync(testContext.PackageSource, packageName, packageVersion2); await CommonUtility.CreatePackageInSourceAsync(testContext.PackageSource, packageName, packageVersion3); await CommonUtility.CreatePackageInSourceAsync(testContext.PackageSource, packageName, packageVersion4); var nugetConsole = GetConsole(testContext.Project); nugetConsole.InstallPackageFromPMC(packageName, packageVersion1); testContext.Project.Build(); testContext.NuGetApexTestService.WaitForAutoRestore(); if (flag == null) { nugetConsole.UpdatePackageFromPMC(packageName, packageVersion2); } else { nugetConsole.UpdatePackageFromPMCWithConstraints(packageName, flag); } testContext.Project.Build(); CommonUtility.AssertPackageReferenceExists(VisualStudio, testContext.Project, packageName, expectedVersion, XunitLogger); CommonUtility.AssertPackageInAssetsFile(VisualStudio, testContext.Project, packageName, expectedVersion, XunitLogger); } }
public async Task NetCoreTransitivePackageReferenceLimitAsync(ProjectTemplate projectTemplate) { // Arrange EnsureVisualStudioHost(); using (var testContext = new ApexTestContext(VisualStudio, projectTemplate, XunitLogger, addNetStandardFeeds: true)) { var project2 = testContext.SolutionService.AddProject(ProjectLanguage.CSharp, projectTemplate, ProjectTargetFramework.V46, "TestProject2"); project2.Build(); var project3 = testContext.SolutionService.AddProject(ProjectLanguage.CSharp, projectTemplate, ProjectTargetFramework.V46, "TestProject3"); project3.Build(); var projectX = testContext.SolutionService.AddProject(ProjectLanguage.CSharp, projectTemplate, ProjectTargetFramework.V46, "TestProjectX"); projectX.Build(); testContext.SolutionService.Build(); testContext.Project.References.Dte.AddProjectReference(project2); testContext.Project.References.Dte.AddProjectReference(projectX); project2.References.Dte.AddProjectReference(project3); testContext.SolutionService.SaveAll(); testContext.SolutionService.Build(); var nugetConsole = GetConsole(project3); var packageName = "newtonsoft.json"; var packageVersion = "9.0.1"; await CommonUtility.CreatePackageInSourceAsync(testContext.PackageSource, packageName, packageVersion); nugetConsole.InstallPackageFromPMC(packageName, packageVersion); testContext.SolutionService.Build(); project2.Build(); project3.Build(); projectX.Build(); testContext.SolutionService.Build(); CommonUtility.AssertPackageInAssetsFile(VisualStudio, project3, packageName, packageVersion, XunitLogger); CommonUtility.AssertPackageInAssetsFile(VisualStudio, testContext.Project, packageName, packageVersion, XunitLogger); CommonUtility.AssertPackageInAssetsFile(VisualStudio, project2, packageName, packageVersion, XunitLogger); CommonUtility.AssertPackageNotInAssetsFile(VisualStudio, projectX, packageName, packageVersion, XunitLogger); } }
public async Task UpdateUnsignedToSignedVersionFromPMCForPC_SucceedAsync(ProjectTemplate projectTemplate) { // Arrange EnsureVisualStudioHost(); var packageVersion09 = "0.9.0"; var signedPackage = _fixture.AuthorSignedTestPackage; using (var testContext = new ApexTestContext(VisualStudio, projectTemplate, XunitLogger)) { await CommonUtility.CreatePackageInSourceAsync(testContext.PackageSource, signedPackage.Id, packageVersion09); await SimpleTestPackageUtility.CreatePackagesAsync(testContext.PackageSource, signedPackage); var nugetConsole = GetConsole(testContext.Project); nugetConsole.InstallPackageFromPMC(signedPackage.Id, packageVersion09); nugetConsole.UpdatePackageFromPMC(signedPackage.Id, signedPackage.Version); CommonUtility.AssetPackageInPackagesConfig(VisualStudio, testContext.Project, signedPackage.Id, signedPackage.Version, XunitLogger); } }
public async Task InstallPackageFromPMCVerifyInstallForPRAsync(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); // Build before the install check to ensure that everything is up to date. testContext.Project.Build(); CommonUtility.AssertPackageReferenceExists(VisualStudio, testContext.Project, packageName, packageVersion, XunitLogger); CommonUtility.AssertPackageInAssetsFile(VisualStudio, testContext.Project, packageName, packageVersion, 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); } }
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(); }