コード例 #1
0
        private async Task InitializeAsync(IEnumerable <PackageVersion> packages = null)
        {
            // Establish the settings.
            _settings                   = ReadFromXml <TestSettings>("TestSettings.xml");
            _nupkgDownloader            = new NupkgDownloader(_settings);
            _luceneDirectoryInitializer = new LuceneDirectoryInitializer(_settings, _nupkgDownloader);
            _portReserver               = new PortReserver();

            // Set up the data.
            var enumeratedPackages = packages?.ToArray() ?? new PackageVersion[0];
            await _nupkgDownloader.DownloadPackagesAsync(enumeratedPackages);

            var luceneDirectory = _luceneDirectoryInitializer.GetInitializedDirectory(enumeratedPackages);

            // Set up the configuration.
            // Note that here we are using DictionaryConfigurationProvider
            // because we want to restrict the values that the configuration can hold.
            var configProvider =
                new DictionaryConfigurationProvider(
                    new Dictionary <string, string>
            {
                { "Local.Lucene.Directory", (luceneDirectory as FSDirectory)?.Directory.FullName ?? "RAM" },
                { "Search.RegistrationBaseAddress", _settings.RegistrationBaseAddress }
            });

            // Set up the data directory.
            var loader = new InMemoryLoader
            {
                { "downloads.v1.json", BuildDownloadsFile(enumeratedPackages) },
                { "curatedfeeds.json", "[]" },
                { "owners.json", "[]" },
                { "verifiedPackages.json", BuildVerifiedPackagesFile(enumeratedPackages) },
                { "rankings.v1.json", BuildRankingsFile(enumeratedPackages) },
                { "searchSettings.v1.json", JsonConvert.SerializeObject(QueryBoostingContext.Default) },
            };

            // Start the app.
            _webApp = WebApp.Start(_portReserver.BaseUri, app => new Startup().Configuration(app, new ConfigurationFactory(configProvider), luceneDirectory, loader));
            Client  = new HttpClient {
                BaseAddress = new Uri(_portReserver.BaseUri)
            };
        }
コード例 #2
0
 public LuceneDirectoryInitializer(TestSettings settings, INupkgDownloader nupkgDownloader)
 {
     _settings = settings;
     _nupkgDownloader = nupkgDownloader;
 }
 public LuceneDirectoryInitializer(TestSettings settings, INupkgDownloader nupkgDownloader)
 {
     _settings        = settings;
     _nupkgDownloader = nupkgDownloader;
 }