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); } } } }
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)); } } }
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); }
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), }; }
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); }
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()); }