public void AllowInstallingPackageWithToolsFolderDoNotThrow()
        {
            // Arrange
            var projectManager = new Mock <IProjectManager>();

            projectManager.Setup(p => p.AddPackageReference("A", new SemanticVersion("1.0"), false, false)).Verifiable();

            var webProjectManager = new WebProjectManager(projectManager.Object, @"x:\")
            {
                DoNotAddBindingRedirects = true
            };

            var packageFile1 = new Mock <IPackageFile>();

            packageFile1.Setup(p => p.Path).Returns("tools\\install.ps1");

            var packageFile2 = new Mock <IPackageFile>();

            packageFile2.Setup(p => p.Path).Returns("content\\A.txt");

            var package = new Mock <IPackage>();

            package.Setup(p => p.Id).Returns("A");
            package.Setup(p => p.Version).Returns(new SemanticVersion("1.0"));
            package.Setup(p => p.GetFiles()).Returns(new[] { packageFile1.Object, packageFile2.Object });

            // Act
            webProjectManager.InstallPackage(package.Object, appDomain: null);

            // Assert
            projectManager.Verify();
        }
        public void GetRemotePackagesTest()
        {
            // Arrange
            var siteRoot         = "x:\\";
            var localRepository  = new MockPackageRepository();
            var sourceRepository = new MockServiceBasePackageRepository();
            var projectSystem    = new WebProjectSystem(siteRoot);
            var pathResolver     = new DefaultPackagePathResolver(projectSystem);
            var projectManager   = new ProjectManager(sourceRepository, pathResolver, projectSystem, localRepository);

            var net40 = new FrameworkName(".NETFramework", new Version("4.0.0.0"));
            var net45 = new FrameworkName(".NETFramework", new Version("4.5.0.0"));

            IPackage packageA = PackageFactory.Create("A", new Version("1.0"), null, new FrameworkName[] { net40 });
            IPackage packageB = PackageFactory.Create("B", new Version("1.0"), null, new FrameworkName[] { net45 });
            IPackage packageC = PackageFactory.Create("C", new Version("1.0"));

            sourceRepository.AddPackage(packageA);
            sourceRepository.AddPackage(packageB);
            sourceRepository.AddPackage(packageC);

            // NOTE THAT target framework used by WebProjectManager would be .NETFramework, Version=4.0.0.0
            var webProjectManager = new WebProjectManager(projectManager, siteRoot);

            // Act
            var packages = webProjectManager.GetRemotePackages(null, false).ToList();

            // Assert
            Assert.Equal(2, packages.Count);
            Assert.Equal(packageA, packages[0]);
            Assert.Equal(packageC, packages[1]);
        }
Beispiel #3
0
        public static List <IPackage> GetInstalledPackagesLatestList(WebProjectManager projectManager, bool filterTags)
        {
            var installedPackages = GetInstalledPackages(projectManager, filterTags);
            var packagesList      = installedPackages.GroupBy(x => x.Id);

            return(packagesList.Select(pack => pack.Single(y => y.Version == pack.Max(x => x.Version))).ToList());
        }
        public void GetRemotePackagesTest()
        {
            // Arrange
            var siteRoot = "x:\\";
            var localRepository = new MockPackageRepository();
            var sourceRepository = new MockServiceBasePackageRepository();
            var projectSystem = new WebProjectSystem(siteRoot);
            var pathResolver = new DefaultPackagePathResolver(projectSystem);
            var projectManager = new ProjectManager(sourceRepository, pathResolver, projectSystem, localRepository);

            var net40 = new FrameworkName(".NETFramework", new Version("4.0.0.0"));
            var net45 = new FrameworkName(".NETFramework", new Version("4.5.0.0"));

            IPackage packageA = PackageFactory.Create("A", new Version("1.0"), null, new FrameworkName[]{ net40 });
            IPackage packageB = PackageFactory.Create("B", new Version("1.0"), null, new FrameworkName[]{ net45 });
            IPackage packageC = PackageFactory.Create("C", new Version("1.0"));

            sourceRepository.AddPackage(packageA);
            sourceRepository.AddPackage(packageB);
            sourceRepository.AddPackage(packageC);

            // NOTE THAT target framework used by WebProjectManager would be .NETFramework, Version=4.0.0.0
            var webProjectManager = new WebProjectManager(projectManager, siteRoot);

            // Act
            var packages = webProjectManager.GetRemotePackages(null, false).ToList();

            // Assert
            Assert.Equal(2, packages.Count);
            Assert.Equal(packageA, packages[0]);
            Assert.Equal(packageC, packages[1]);
        }
Beispiel #5
0
        private IPackage GetInstalledPackage(WebProjectManager projectManager, string packageId)
        {
            var installed = projectManager.GetInstalledPackages(packageId).Where(p => p.Id == packageId);

            var installedPackages = installed.ToList();

            return(installedPackages.FirstOrDefault());
        }
Beispiel #6
0
        public void GetLocalRepositoryReturnsPackagesFolderUnderAppData()
        {
            // Arrange
            var siteRoot = "my-site";

            // Act
            var repositoryFolder = WebProjectManager.GetWebRepositoryDirectory(siteRoot);

            Assert.Equal(@"my-site\App_Data\packages", repositoryFolder);
        }
        private IPackage GetInstalledPackage(WebProjectManager projectManager, string packageId)
        {
            IPackage package = projectManager.GetInstalledPackages(true).Where(d => d.Id == packageId).FirstOrDefault();

            if (package == null)
            {
                throw new InvalidOperationException(string.Format("The package for package ID '{0}' is not installed in this website. Copy the package into the App_Data/packages folder.", packageId));
            }
            return(package);
        }
Beispiel #8
0
        public void GetPackagesReturnsAllItemsWhenNoSearchTermIsIncluded()
        {
            // Arrange
            var repository = GetRepository();

            // Act
            var result = WebProjectManager.GetPackages(repository, String.Empty);

            // Assert
            Assert.Equal(3, result.Count());
        }
 private static IPackage GetInstalledPackage(WebProjectManager projectManager, string packageId)
 {
     var package = (from p in projectManager.GetInstalledPackages(packageId)
                         where p.Id == packageId
                         select p).ToList<IPackage>().FirstOrDefault<IPackage>();
     if (package == null)
     {
         throw new InvalidOperationException(string.Format("The package for package ID '{0}' is not installed in this website. Copy the package into the App_Data/packages folder.", packageId));
     }
     return package;
 }
Beispiel #10
0
        private static IPackage GetInstalledPackage(WebProjectManager projectManager, string packageId)
        {
            var package = (from p in projectManager.GetInstalledPackages(packageId)
                           where p.Id == packageId
                           select p).ToList <IPackage>().FirstOrDefault <IPackage>();

            if (package == null)
            {
                throw new InvalidOperationException(string.Format("The package for package ID '{0}' is not installed in this website. Copy the package into the App_Data/packages folder.", packageId));
            }
            return(package);
        }
Beispiel #11
0
        public void GetPackagesReturnsItemsContainingSomeSearchToken()
        {
            // Arrange
            var repository = GetRepository();

            // Act
            var result  = WebProjectManager.GetPackages(repository, "testing .NET");
            var package = result.SingleOrDefault();

            // Assert
            Assert.NotNull(package);
            Assert.Equal("A", package.Id);
        }
        public void GetPackagesWithLicenseReturnsEmptyResultForPackageThatDoesNotRequireLicenses()
        {
            // Arrange
            var remoteRepository = GetRepository();
            var localRepository  = new Mock <IPackageRepository>().Object;

            // Act
            var package = remoteRepository.GetPackages().Find("A").SingleOrDefault();
            var result  = WebProjectManager.GetPackagesRequiringLicenseAcceptance(package, localRepository, remoteRepository);

            // Assert
            Assert.False(result.Any());
        }
        public void GetPackagesWithLicenseReturnsAllDependenciesWithRequiresAcceptance()
        {
            // Arrange
            var remoteRepository = GetRepository();
            var localRepository  = new Mock <IPackageRepository>().Object;

            // Act
            var package = remoteRepository.GetPackages().Find("C").SingleOrDefault();
            var result  = WebProjectManager.GetPackagesRequiringLicenseAcceptance(package, localRepository, remoteRepository);

            // Assert
            Assert.Equal(2, result.Count());
            Assert.True(result.Any(c => c.Id == "C"));
            Assert.True(result.Any(c => c.Id == "B"));
        }
        private IEnumerable <IPackage> GetInstalledPackages(WebProjectManager projectManager)
        {
            var packages = projectManager.GetInstalledPackages(true);

            return(packages);
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="projectManager"></param>
        /// <param name="packageId"></param>
        /// <returns></returns>
        private IPackage GetInstalledPackage(WebProjectManager projectManager, string packageId)
        {
            var installed = projectManager.GetInstalledPackages(packageId).Where(p => p.Id == packageId);

            var installedPackages = installed.ToList();
            var package = installedPackages.FirstOrDefault();
            if (package == null)
            {
                throw new InvalidOperationException(String.Format("The package for package ID '{0}' is not installed in this website. Copy the package into the App_Data/packages folder.", packageId));
            }
            return package;
        }
Beispiel #16
0
        public static List <IPackage> GetInstalledPackages(WebProjectManager projectManager, bool filterTags)
        {
            var packages = projectManager.GetInstalledPackages(filterTags).ToList();

            return(packages);
        }
Beispiel #17
0
        public static List <IPackage> GetAvailablePackages(WebProjectManager projectManager)
        {
            var packages = projectManager.GetRemotePackages().ToList();

            return(packages);
        }
Beispiel #18
0
        public static List <IPackage> GetAvailablePackagesLatestList(WebProjectManager projectManager)
        {
            var availablePackages = GetAvailablePackages(projectManager);

            return(availablePackages.GroupBy(x => x.Id).Select(pack => pack.Single(y => y.Version == pack.Max(x => x.Version))).ToList());
        }