public async Task DotnetListPackage_Succeed() { using (var pathContext = _fixture.CreateSimpleTestPathContext()) { var projectA = XPlatTestUtils.CreateProject(ProjectName, pathContext, "net46"); var packageX = XPlatTestUtils.CreatePackage(); // Generate Package await SimpleTestPackageUtility.CreateFolderFeedV3Async( pathContext.PackageSource, PackageSaveMode.Defaultv3, packageX); var addResult = _fixture.RunDotnet(Directory.GetParent(projectA.ProjectPath).FullName, $"add {projectA.ProjectPath} package packageX --version 1.0.0 --no-restore"); Assert.True(addResult.Success); var restoreResult = _fixture.RunDotnet(Directory.GetParent(projectA.ProjectPath).FullName, $"restore {projectA.ProjectName}.csproj"); Assert.True(restoreResult.Success); var listResult = _fixture.RunDotnet(Directory.GetParent(projectA.ProjectPath).FullName, $"list {projectA.ProjectPath} package"); Assert.True(ContainsIgnoringSpaces(listResult.AllOutput, "packageX1.0.01.0.0")); } }
public async Task DotnetSign_SignPackageWithTrustedCertificate_SucceedsAsync() { // Arrange using (SimpleTestPathContext pathContext = _msbuildFixture.CreateSimpleTestPathContext()) { await SimpleTestPackageUtility.CreatePackagesAsync( pathContext.PackageSource, new SimpleTestPackageContext("PackageA", "1.0.0")); string packageFilePath = Path.Combine(pathContext.PackageSource, "PackageA.1.0.0.nupkg"); IX509StoreCertificate storeCertificate = _signFixture.DefaultCertificate; // Act CommandRunnerResult result = _msbuildFixture.RunDotnet( pathContext.PackageSource, GetDefaultArgs(packageFilePath, storeCertificate), ignoreExitCode: true); // Assert result.Success.Should().BeTrue(because: result.AllOutput); result.AllOutput.Should().Contain(_noTimestamperWarningCode); } }
public void DotnetTrust_Implicit_ListAction_Succeeds() { using (SimpleTestPathContext pathContext = _msbuildFixture.CreateSimpleTestPathContext()) { // Arrange var nugetConfigFileName = "NuGet.Config"; var nugetConfigContent = $@"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <trustedSigners> <author name=""signer""> <certificate fingerprint=""abcdef"" hashAlgorithm=""SHA256"" allowUntrustedRoot=""false"" /> </author> </trustedSigners> </configuration>"; var expectedAuthorContent = $@"Registered trusted signers: 1. signer [author] Certificate fingerprint(s): SHA256 - abcdef "; var nugetConfigPath = Path.Combine(pathContext.WorkingDirectory, nugetConfigFileName); File.WriteAllText(nugetConfigPath, nugetConfigContent); //Act CommandRunnerResult result = _msbuildFixture.RunDotnet( pathContext.WorkingDirectory, $"nuget trust --configfile {nugetConfigPath}"); // Assert result.Success.Should().BeTrue(); SettingsTestUtils.RemoveWhitespace(result.Output).Should().Contain(SettingsTestUtils.RemoveWhitespace(expectedAuthorContent)); } }
public void DotnetRestore_SolutionRestoreVerifySolutionDirPassedToProjects() { using (var pathContext = _msbuildFixture.CreateSimpleTestPathContext()) { _msbuildFixture.CreateDotnetNewProject(pathContext.SolutionRoot, "proj"); var slnContents = @" Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.27330.1 MinimumVisualStudioVersion = 10.0.40219.1 Project(""{9A19103F-16F7-4668-BE54-9A1E7A4F7556}"") = ""proj"", ""proj\proj.csproj"", ""{216FF388-8C16-4AF4-87A8-9094030692FA}"" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {216FF388-8C16-4AF4-87A8-9094030692FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {216FF388-8C16-4AF4-87A8-9094030692FA}.Debug|Any CPU.Build.0 = Debug|Any CPU {216FF388-8C16-4AF4-87A8-9094030692FA}.Release|Any CPU.ActiveCfg = Release|Any CPU {216FF388-8C16-4AF4-87A8-9094030692FA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {9A6704E2-6E77-4FF4-9E54-B789D88829DD} EndGlobalSection EndGlobal"; var slnPath = Path.Combine(pathContext.SolutionRoot, "proj.sln"); File.WriteAllText(slnPath, slnContents); var projPath = Path.Combine(pathContext.SolutionRoot, "proj", "proj.csproj"); var doc = XDocument.Parse(File.ReadAllText(projPath)); doc.Root.Add(new XElement(XName.Get("Target"), new XAttribute(XName.Get("Name"), "ErrorOnSolutionDir"), new XAttribute(XName.Get("BeforeTargets"), "CollectPackageReferences"), new XElement(XName.Get("Error"), new XAttribute(XName.Get("Text"), $"|SOLUTION $(SolutionDir) $(SolutionName) $(SolutionExt) $(SolutionFileName) $(SolutionPath)|")))); File.Delete(projPath); File.WriteAllText(projPath, doc.ToString()); var result = _msbuildFixture.RunDotnet(pathContext.SolutionRoot, "msbuild proj.sln /t:restore /p:DisableImplicitFrameworkReferences=true", ignoreExitCode: true); result.ExitCode.Should().Be(1, "error text should be displayed"); result.AllOutput.Should().Contain($"|SOLUTION {PathUtility.EnsureTrailingSlash(pathContext.SolutionRoot)} proj .sln proj.sln {slnPath}|"); } }
public async Task DotnetSign_SignPackageWithTrustedCertificate_SucceedsAsync() { // Arrange using (var pathContext = _msbuildFixture.CreateSimpleTestPathContext()) { await SimpleTestPackageUtility.CreatePackagesAsync( pathContext.PackageSource, new SimpleTestPackageContext("PackageA", "1.0.0")); var packageFilePath = Path.Combine(pathContext.PackageSource, "PackageA.1.0.0.nupkg"); TrustedTestCert <TestCertificate> trustedCert = _signFixture.TrustedTestCertificateChain.Leaf; //Act CommandRunnerResult result = _msbuildFixture.RunDotnet( pathContext.PackageSource, $"nuget sign {packageFilePath} --certificate-fingerprint {trustedCert.Source.Cert.Thumbprint} --certificate-store-name {trustedCert.StoreName} --certificate-store-location {trustedCert.StoreLocation}", ignoreExitCode: true); // Assert result.Success.Should().BeTrue(because: result.AllOutput); result.AllOutput.Should().Contain(_noTimestamperWarningCode); } }