public async Task TryGetLastKnownGoodCredentialsFromCache_ReturnsCredentialsForCacheHit(bool isProxy) { var networkCredential = new NetworkCredential(); 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(networkCredential))); 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.True(wasCacheHit); Assert.Same(networkCredential, credentials); Assert.Same(credentials, cachedCredentials); }
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"); var service = new CredentialService(new[] { provider.Object }, nonInteractive: false); 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); }
public void TryGetLastKnownGoodCredentialsFromCache_ReturnsFalseForCacheMiss(bool isProxy) { var service = new CredentialService(new AsyncLazy <IEnumerable <ICredentialProvider> >(() => Task.FromResult(Enumerable.Empty <ICredentialProvider>())), nonInteractive: true, handlesDefaultCredentials: true); ICredentials credentials; var wasCacheHit = service.TryGetLastKnownGoodCredentialsFromCache( new Uri("https://unit.test"), isProxy, out credentials); Assert.False(wasCacheHit); }
public void TryGetLastKnownGoodCredentialsFromCache_ReturnsFalseForCacheMiss(bool isProxy) { var service = new CredentialService(Enumerable.Empty <ICredentialProvider>(), nonInteractive: true); ICredentials credentials; var wasCacheHit = service.TryGetLastKnownGoodCredentialsFromCache( new Uri("https://unit.test"), isProxy, out credentials); Assert.False(wasCacheHit); }
public void TryGetLastKnownGoodCredentialsFromCache_ThrowsForNullUri(bool isProxy) { var service = new CredentialService(new AsyncLazy <IEnumerable <ICredentialProvider> >(() => Task.FromResult(Enumerable.Empty <ICredentialProvider>())), nonInteractive: true, handlesDefaultCredentials: true); ICredentials credentials; var exception = Assert.Throws <ArgumentNullException>( () => service.TryGetLastKnownGoodCredentialsFromCache( uri: null, isProxy: isProxy, credentials: out credentials)); Assert.Equal("uri", exception.ParamName); }