コード例 #1
0
        public async Task TryGetLastKnownGoodCredentialsFromCache_DoesNotReturnUnsuccessfulCredentials(
            CredentialStatus credentialStatus,
            bool isProxy)
        {
            var provider = new Mock <ICredentialProvider>(MockBehavior.Strict);

            provider.Setup(x => x.GetAsync(
                               It.IsAny <Uri>(),
                               It.IsAny <IWebProxy>(),
                               It.IsAny <CredentialRequestType>(),
                               It.IsAny <string>(),
                               It.IsAny <bool>(),
                               It.IsAny <bool>(),
                               It.IsAny <CancellationToken>()))
            .Returns(() => Task.FromResult(new CredentialResponse(credentialStatus)));
            provider.Setup(x => x.Id).Returns("a");
            IEnumerable <ICredentialProvider> providers = new[] { provider.Object };
            var service     = new CredentialService(new AsyncLazy <IEnumerable <ICredentialProvider> >(() => Task.FromResult(providers)), nonInteractive: false, handlesDefaultCredentials: true);
            var uri         = new Uri("https://unit.test");
            var type        = isProxy ? CredentialRequestType.Proxy : CredentialRequestType.Unauthorized;
            var credentials = await service.GetCredentialsAsync(
                uri,
                proxy : null,
                type : type,
                message : null,
                cancellationToken : CancellationToken.None);

            ICredentials cachedCredentials;
            var          wasCacheHit = service.TryGetLastKnownGoodCredentialsFromCache(uri, isProxy, out cachedCredentials);

            Assert.False(wasCacheHit);
        }
コード例 #2
0
        /// <summary>
        /// Crates a credential response object
        /// </summary>
        /// <param name="credentials"></param>
        /// <param name="status"></param>
        public CredentialResponse(ICredentials credentials, CredentialStatus status)
        {
            if ((credentials != null && status == CredentialStatus.ProviderNotApplicable) ||
                (credentials == null && status == CredentialStatus.Success))
            {
                throw new ProviderException(Resources.ProviderException_InvalidCredentialResponse);
            }

            Credentials = credentials;
            Status      = status;
        }
コード例 #3
0
        CredentialResponse(ICredentials credentials, CredentialStatus status)
        {
            if ((credentials != null && status != CredentialStatus.Success) ||
                (credentials == null && status == CredentialStatus.Success))
            {
                throw new ProviderException(GettextCatalog.GetString("Could not create credential response object because the response was invalid."));
            }

            Credentials = credentials;
            Status      = status;
        }
コード例 #4
0
        CredentialResponse(ICredentials credentials, CredentialStatus status)
        {
            if ((credentials != null && status != CredentialStatus.Success) ||
                (credentials == null && status == CredentialStatus.Success))
            {
                throw new InvalidOperationException("Could not create credential response object because the response was invalid.");
            }

            Credentials = credentials;
            Status      = status;
        }
コード例 #5
0
 /// <summary>
 /// Creates a Credential response object without giving credentials.
 /// Note should only be done if the status is ProviderNotApplicable.
 /// </summary>
 /// <param name="status"></param>
 public CredentialResponse(CredentialStatus status) : this(null, status)
 {
 }