Exemple #1
0
        public ProtocolFixture()
        {
            var httpClient = new HttpClient(new TestDataHttpMessageHandler());

            NuGetClientFactory = new NuGetClientFactory(httpClient, TestData.ServiceIndexUrl);
            NuGetClient        = new NuGetClient(NuGetClientFactory);

            ServiceIndexClient = new RawServiceIndexClient(httpClient, TestData.ServiceIndexUrl);
            ContentClient      = new RawPackageContentClient(httpClient, TestData.PackageContentUrl);
            MetadataClient     = new RawPackageMetadataClient(httpClient, TestData.PackageMetadataUrl);
            SearchClient       = new RawSearchClient(httpClient, TestData.SearchUrl);
            AutocompleteClient = new RawAutocompleteClient(httpClient, TestData.AutocompleteUrl);
            CatalogClient      = new RawCatalogClient(httpClient, TestData.CatalogIndexUrl);
        }
        private async Task <T> GetAsync <T>(Func <NuGetClients, T> clientFactory, CancellationToken cancellationToken)
        {
            if (_clients == null)
            {
                await _mutex.WaitAsync(cancellationToken);

                try
                {
                    if (_clients == null)
                    {
                        var serviceIndexClient = new RawServiceIndexClient(_httpClient, _serviceIndexUrl);

                        var serviceIndex = await serviceIndexClient.GetAsync(cancellationToken);

                        var contentClient  = new RawPackageContentClient(_httpClient, serviceIndex.GetPackageContentResourceUrl());
                        var metadataClient = new RawPackageMetadataClient(_httpClient, serviceIndex.GetPackageMetadataResourceUrl());
                        var catalogClient  = new RawCatalogClient(_httpClient, serviceIndex.GetCatalogResourceUrl());
                        var searchClient   = new RawSearchClient(_httpClient,
                                                                 serviceIndex.GetSearchQueryResourceUrl(),
                                                                 serviceIndex.GetSearchAutocompleteResourceUrl());

                        _clients = new NuGetClients
                        {
                            ServiceIndex = serviceIndex,

                            PackageContentClient  = contentClient,
                            PackageMetadataClient = metadataClient,
                            SearchClient          = searchClient,
                            CatalogClient         = catalogClient,
                        };
                    }
                }
                finally
                {
                    _mutex.Release();
                }
            }

            // TODO: This should periodically refresh the service index response.
            return(clientFactory(_clients));
        }
Exemple #3
0
 public RawCatalogClientTests(ProtocolFixture fixture)
 {
     _target = fixture.CatalogClient;
 }