Пример #1
0
        private void Initialize()
        {
            if (_providers.Count > 0)
            {
                return;
            }

            var packageInfoFactory = new NpmPackageInfoFactory(WebRequestHandler.Instance);
            var packageSearch      = new NpmPackageSearch(WebRequestHandler.Instance);

            IEnumerable <IProviderFactory> factories = new IProviderFactory[] {
                new UnpkgProviderFactory(packageSearch, packageInfoFactory),
                new JsDelivrProviderFactory(packageSearch, packageInfoFactory),
                new FileSystemProviderFactory(),
                new CdnjsProviderFactory(),
            };

            foreach (IProviderFactory factory in factories)
            {
                if (factory != null)
                {
                    var provider = factory.CreateProvider(_hostInteraction);
                    if (!string.IsNullOrEmpty(provider.Id))
                    {
                        _providers.Add(provider);
                    }
                }
            }
        }
Пример #2
0
        private void Initialize()
        {
            if (_providers.Count > 0)
            {
                return;
            }

            var packageInfoFactory = new NpmPackageInfoFactory();
            var packageSearch      = new NpmPackageSearch();

            IEnumerable <IProviderFactory> factories = new IProviderFactory[] {
                new FileSystemProviderFactory(),
                new CdnjsProviderFactory(),
                new UnpkgProviderFactory(packageSearch, packageInfoFactory),
                new JsDelivrProviderFactory(packageSearch, packageInfoFactory),
            };

            foreach (IProviderFactory factory in factories)
            {
                if (factory != null)
                {
                    _providers.Add(factory.CreateProvider(_hostInteraction));
                }
            }
        }
Пример #3
0
        public async Task NpmPackageSearch_GetPackageInfoAsync_ScopedPackage()
        {
            string            searchItem = "@angular/cli";
            CancellationToken token      = CancellationToken.None;

            var            sut         = new NpmPackageInfoFactory();
            NpmPackageInfo packageInfo = await sut.GetPackageInfoAsync(searchItem, token);

            Assert.IsTrue(packageInfo.Versions != null);
            Assert.IsTrue(packageInfo.Versions.Count() > 0);
        }
Пример #4
0
        public DependenciesFactory()
        {
            var packageSearch      = new NpmPackageSearch(WebRequestHandler.Instance);
            var packageInfoFactory = new NpmPackageInfoFactory(WebRequestHandler.Instance);

            ProviderFactories = new IProviderFactory[] {
                new FileSystemProviderFactory(),
                new CdnjsProviderFactory(),
                new UnpkgProviderFactory(packageSearch, packageInfoFactory),
                new JsDelivrProviderFactory(packageSearch, packageInfoFactory),
            };
        }
Пример #5
0
        public void Setup()
        {
            string cacheFolder = Environment.ExpandEnvironmentVariables(@"%localappdata%\Microsoft\Library\");

            _projectFolder = Path.Combine(Path.GetTempPath(), "LibraryManager");

            var hostInteraction = new HostInteraction(_projectFolder, cacheFolder);

            var npmPackageSearch   = new NpmPackageSearch();
            var packageInfoFactory = new NpmPackageInfoFactory();

            var dependencies = new Dependencies(hostInteraction, new UnpkgProviderFactory(npmPackageSearch, packageInfoFactory));

            _provider = dependencies.GetProvider("unpkg");

            LibraryIdToNameAndVersionConverter.Instance.Reinitialize(dependencies);
            Directory.CreateDirectory(_projectFolder);
        }
Пример #6
0
        public async Task NpmPackageSearch_GetPackageInfoAsync_ScopedPackage()
        {
            string searchItem       = "@angular/cli";
            var    expectedVersions = (new[] { "1.0.1", "2.1.7", "3.1.4-pi" })
                                      .Select(x => SemanticVersion.Parse(x))
                                      .ToList();
            string packageInfoRequest = "https://registry.npmjs.org/@angular%2fcli";
            var    requestHandler     = new Mocks.WebRequestHandler();

            requestHandler.ArrangeResponse(packageInfoRequest, FakeResponses.FakeLibraryWithVersions);
            var sut = new NpmPackageInfoFactory(requestHandler);

            NpmPackageInfo packageInfo = await sut.GetPackageInfoAsync(searchItem, CancellationToken.None);

            Assert.AreEqual("fakelibrary", packageInfo.Name);
            Assert.AreEqual("fake description", packageInfo.Description);
            CollectionAssert.AreEquivalent(expectedVersions, packageInfo.Versions.ToList());
        }