public async Task AddPackageToSource_InstallsPackageAsync() { using (var testDirectory = TestDirectory.Create()) { var packageIdentity = new PackageIdentity(id: "a", version: NuGetVersion.Parse("1.0.0")); var packageContext = new SimpleTestPackageContext() { Id = packageIdentity.Id, Version = packageIdentity.Version.ToNormalizedString(), Nuspec = XDocument.Parse($@"<?xml version=""1.0"" encoding=""utf-8""?> <package> <metadata> <id>{packageIdentity.Id}</id> <version>{packageIdentity.Version.ToNormalizedString()}</version> <title /> <frameworkAssemblies> <frameworkAssembly assemblyName=""System.Runtime"" /> </frameworkAssemblies> <contentFiles> <files include=""lib/net45/{packageIdentity.Id}.dll"" copyToOutput=""true"" flatten=""false"" /> </contentFiles> </metadata> </package>") }; packageContext.AddFile($"lib/net45/{packageIdentity.Id}.dll"); var sourcePackageDirectoryPath = Path.Combine(testDirectory.Path, "source"); var destinationDirectoryPath = Path.Combine(testDirectory.Path, "destination"); Directory.CreateDirectory(destinationDirectoryPath); await SimpleTestPackageUtility.CreatePackagesAsync(sourcePackageDirectoryPath, packageContext); var sourcePackageFilePath = Path.Combine( sourcePackageDirectoryPath, $"{packageIdentity.Id}.{packageIdentity.Version.ToNormalizedString()}.nupkg"); var destinationPackageDirectoryPath = Path.Combine( destinationDirectoryPath, packageIdentity.Id, packageIdentity.Version.ToNormalizedString()); var context = new OfflineFeedAddContext( sourcePackageFilePath, destinationDirectoryPath, NullLogger.Instance, throwIfSourcePackageIsInvalid: false, throwIfPackageExistsAndInvalid: false, throwIfPackageExists: false, expand: true); await OfflineFeedUtility.AddPackageToSource(context, CancellationToken.None); Assert.True(File.Exists(Path.Combine(destinationPackageDirectoryPath, $"{packageIdentity.Id}.{packageIdentity.Version.ToNormalizedString()}.nupkg"))); Assert.True(File.Exists(Path.Combine(destinationPackageDirectoryPath, $"{packageIdentity.Id}.{packageIdentity.Version.ToNormalizedString()}.nupkg.sha512"))); Assert.True(File.Exists(Path.Combine(destinationPackageDirectoryPath, $"{packageIdentity.Id}.nuspec"))); Assert.True(File.Exists(Path.Combine(destinationPackageDirectoryPath, "lib", "net45", $"{packageIdentity.Id}.dll"))); } }
public override async Task ExecuteCommandAsync() { // Arguments[0] will not be null at this point. // Because, this command has MinArgs set to 1. var packagePath = Arguments[0]; if (string.IsNullOrEmpty(Source)) { throw new CommandLineException( LocalizedResourceManager.GetString(nameof(NuGetResources.AddCommand_SourceNotProvided))); } OfflineFeedUtility.ThrowIfInvalidOrNotFound( packagePath, isDirectory: false, resourceString: LocalizedResourceManager.GetString(nameof(NuGetResources.NupkgPath_NotFound))); // If the Source Feed Folder does not exist, it will be created. OfflineFeedUtility.ThrowIfInvalid(Source); var offlineFeedAddContext = new OfflineFeedAddContext( packagePath, Source, Console, // IConsole is an ILogger throwIfSourcePackageIsInvalid: true, throwIfPackageExistsAndInvalid: true, throwIfPackageExists: false, expand: Expand); await OfflineFeedUtility.AddPackageToSource(offlineFeedAddContext, CancellationToken.None); }
public override async Task ExecuteCommandAsync() { // Arguments[0] or Arguments[1] will not be null at this point. // Because, this command has MinArgs set to 2. var source = Arguments[0]; var destination = Arguments[1]; OfflineFeedUtility.ThrowIfInvalidOrNotFound( source, isDirectory: true, resourceString: LocalizedResourceManager.GetString(nameof(NuGetResources.InitCommand_FeedIsNotFound))); // If the Destination Feed Folder does not exist, it will be created. OfflineFeedUtility.ThrowIfInvalid(destination); var packagePaths = GetPackageFilePaths(source, "*" + PackagingCoreConstants.NupkgExtension); if (packagePaths.Count > 0) { var signedPackageVerifier = new PackageSignatureVerifier(SignatureVerificationProviderFactory.GetSignatureVerificationProviders()); var signingSettings = SignedPackageVerifierSettings.GetClientPolicy(Settings, Console); var packageExtractionContext = new PackageExtractionContext( Expand ? PackageSaveMode.Defaultv3 : PackageSaveMode.Nuspec | PackageSaveMode.Nupkg, PackageExtractionBehavior.XmlDocFileSaveMode, Console, signedPackageVerifier, signingSettings); foreach (var packagePath in packagePaths) { var offlineFeedAddContext = new OfflineFeedAddContext( packagePath, destination, Console, // IConsole is an ILogger throwIfSourcePackageIsInvalid: false, throwIfPackageExistsAndInvalid: false, throwIfPackageExists: false, extractionContext: packageExtractionContext); await OfflineFeedUtility.AddPackageToSource(offlineFeedAddContext, CancellationToken.None); } } else { var message = string.Format( CultureInfo.CurrentCulture, LocalizedResourceManager.GetString(nameof(NuGetResources.InitCommand_FeedContainsNoPackages)), source); Console.LogMinimal(message); } }
public override async Task ExecuteCommandAsync() { // Arguments[0] or Arguments[1] will not be null at this point. // Because, this command has MinArgs set to 2. var source = Arguments[0]; var destination = Arguments[1]; OfflineFeedUtility.ThrowIfInvalidOrNotFound( source, isDirectory: true, resourceString: LocalizedResourceManager.GetString(nameof(NuGetResources.InitCommand_FeedIsNotFound))); // If the Destination Feed Folder does not exist, it will be created. OfflineFeedUtility.ThrowIfInvalid(destination); var packagePaths = GetPackageFilePaths(source, "*" + PackagingCoreConstants.NupkgExtension); if (packagePaths.Count > 0) { foreach (var packagePath in packagePaths) { var offlineFeedAddContext = new OfflineFeedAddContext( packagePath, destination, Console, // IConsole is an ILogger throwIfSourcePackageIsInvalid: false, throwIfPackageExistsAndInvalid: false, throwIfPackageExists: false, expand: Expand); await OfflineFeedUtility.AddPackageToSource(offlineFeedAddContext, CancellationToken.None); } } else { var message = string.Format( CultureInfo.CurrentCulture, LocalizedResourceManager.GetString(nameof(NuGetResources.InitCommand_FeedContainsNoPackages)), source); Console.LogMinimal(message); } }
public override async Task ExecuteCommandAsync() { // Arguments[0] will not be null at this point. // Because, this command has MinArgs set to 1. var packagePath = Arguments[0]; if (string.IsNullOrEmpty(Source)) { throw new CommandLineException( LocalizedResourceManager.GetString(nameof(NuGetResources.AddCommand_SourceNotProvided))); } OfflineFeedUtility.ThrowIfInvalidOrNotFound( packagePath, isDirectory: false, resourceString: LocalizedResourceManager.GetString(nameof(NuGetResources.NupkgPath_NotFound))); // If the Source Feed Folder does not exist, it will be created. OfflineFeedUtility.ThrowIfInvalid(Source); var signedPackageVerifier = new PackageSignatureVerifier(SignatureVerificationProviderFactory.GetSignatureVerificationProviders()); var packageExtractionContext = new PackageExtractionContext( Expand ? PackageSaveMode.Defaultv3 : PackageSaveMode.Nuspec | PackageSaveMode.Nupkg, PackageExtractionBehavior.XmlDocFileSaveMode, Console, signedPackageVerifier, SignedPackageVerifierSettings.GetDefault()); var offlineFeedAddContext = new OfflineFeedAddContext( packagePath, Source, Console, // IConsole is an ILogger throwIfSourcePackageIsInvalid: true, throwIfPackageExistsAndInvalid: true, throwIfPackageExists: false, extractionContext: packageExtractionContext); await OfflineFeedUtility.AddPackageToSource(offlineFeedAddContext, CancellationToken.None); }