예제 #1
0
        private async Task UpdateHttpClient(ICredentials credentials)
        {
            if (_httpHandler == null)
            {
                _httpHandler = await _messageHandlerFactory();

                _httpClient         = new HttpClient(_httpHandler.MessageHandler);
                _httpClient.Timeout = Timeout.InfiniteTimeSpan;

                // Create a new wrapper for ICredentials that can be modified
                _credentials = new CredentialHelper();
                _httpHandler.ClientHandler.Credentials = _credentials;

                // Always take the credentials from the helper.
                _httpHandler.ClientHandler.UseDefaultCredentials = false;

                // Set user agent
                UserAgent.SetUserAgent(_httpClient);
            }

            // Modify the credentials on the current handler
            _credentials.Credentials = credentials;

            // Mark that auth has been updated
            _lastAuthId = Guid.NewGuid();
        }
        private static void AddOrUpdateGetCredentialsRequestHandler(
            IPlugin plugin,
            SourceRepository source,
            HttpHandlerResource httpHandlerResource)
        {
            plugin.Connection.MessageDispatcher.RequestHandlers.AddOrUpdate(
                MessageMethod.GetCredentials,
                () => new GetCredentialsRequestHandler(
                    plugin,
                    httpHandlerResource.ClientHandler?.Proxy,
                    HttpHandlerResourceV3.CredentialService),
                existingHandler =>
            {
                var handler = (GetCredentialsRequestHandler)existingHandler;

                handler.AddOrUpdateSourceRepository(source);

                return(handler);
            });
        }
        private static HttpHandlerResourceV3Provider CreateMockHttpHandlerResource(bool createResource)
        {
            var provider = new Mock <HttpHandlerResourceV3Provider>();

            provider.Setup(x => x.Name)
            .Returns(nameof(HttpHandlerResourceV3Provider));
            provider.Setup(x => x.ResourceType)
            .Returns(typeof(HttpHandlerResource));

            HttpHandlerResource resource = null;

            if (createResource)
            {
                resource = Mock.Of <HttpHandlerResource>();
            }

            var tryCreateResult = new Tuple <bool, INuGetResource>(resource != null, resource);

            provider.Setup(x => x.TryCreate(It.IsAny <SourceRepository>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(tryCreateResult));

            return(provider.Object);
        }