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 Tampered_InstallFromPMCForPR_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."); testContext.SolutionService.Build(); testContext.NuGetApexTestService.WaitForAutoRestore(); CommonUtility.AssertPackageReferenceDoesNotExist(VisualStudio, testContext.Project, signedPackage.Id, signedPackage.Version, XunitLogger); } }
public async Task UninstallFromPMCForPR_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); testContext.SolutionService.Build(); testContext.NuGetApexTestService.WaitForAutoRestore(); nugetConsole.UninstallPackageFromPMC(signedPackage.Id); testContext.SolutionService.Build(); testContext.NuGetApexTestService.WaitForAutoRestore(); testContext.SolutionService.Build(); CommonUtility.AssertPackageReferenceDoesNotExist(VisualStudio, testContext.Project, signedPackage.Id, signedPackage.Version, XunitLogger); } }
public async Task UninstallPackageFromPMCForPRAsync(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); testContext.Project.Build(); testContext.NuGetApexTestService.WaitForAutoRestore(); nugetConsole.UninstallPackageFromPMC(packageName); testContext.Project.Build(); CommonUtility.AssertPackageReferenceDoesNotExist(VisualStudio, testContext.Project, packageName, packageVersion, XunitLogger); CommonUtility.AssertPackageNotInAssetsFile(VisualStudio, testContext.Project, packageName, packageVersion, XunitLogger); } }