Exemple #1
0
        public string GetPackagePathInGlobalPackagesFolder(PackageIdentity identity)
        {
            using (var result = GlobalPackagesFolderUtility.GetPackage(identity, GlobalPackagesPath))
            {
                if (result == null)
                {
                    return(null);
                }

                var resolver = new VersionFolderPathResolver(GlobalPackagesPath);
                return(resolver.GetInstallPath(identity.Id, identity.Version));
            }
        }
Exemple #2
0
        private static async Task VerifyDirectDownloadSkipsGlobalPackagesFolderAsync(
            SourceRepositoryProvider sourceRepositoryProvider)
        {
            // Arrange
            var sourceRepository = sourceRepositoryProvider.GetRepositories().First();
            var packageIdentity  = new PackageIdentity("jQuery", new NuGetVersion("1.8.2"));

            using (var packagesDirectory = TestDirectory.Create())
                using (var directDownloadDirectory = TestDirectory.Create())
                    using (var cacheContext = new SourceCacheContext())
                    {
                        var downloadContext = new PackageDownloadContext(
                            cacheContext,
                            directDownloadDirectory,
                            directDownload: true);

                        // Act
                        using (var downloadResult = await PackageDownloader.GetDownloadResourceResultAsync(
                                   sourceRepository,
                                   packageIdentity,
                                   downloadContext,
                                   packagesDirectory,
                                   NullLogger.Instance,
                                   CancellationToken.None))
                        {
                            var targetPackageStream = downloadResult.PackageStream;

                            using (var packageArchiveReader = new PackageArchiveReader(targetPackageStream))
                            {
                                var contentHash = packageArchiveReader.GetContentHash(CancellationToken.None);

                                // Assert
                                Assert.Equal(_jQuery182ContentHash, contentHash);
                                Assert.True(targetPackageStream.CanSeek);
                            }
                        }

                        // Verify that the direct download directory is empty. The package should be downloaded to a temporary
                        // file opened with DeleteOnClose.
                        Assert.Equal(0, Directory.EnumerateFileSystemEntries(directDownloadDirectory).Count());

                        // Verify that the package was not cached in the Global Packages Folder
                        var globalPackage = GlobalPackagesFolderUtility.GetPackage(packageIdentity, packagesDirectory);
                        Assert.Null(globalPackage);
                    }
        }