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); }
/// <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; }
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; }
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; }
/// <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) { }