public async Task SelectTheFirstAvailableProviderTestAsync() { var providers = new List <ITokenProvider> { new MockProvider { Available = false }, new MockProvider { Available = false }, new MockProvider { Available = true, Token = new MockToken { AccessToken = "foo", ExpiresOn = DateTime.UtcNow.AddSeconds(60) } }, new MockProvider { Available = true, Token = new MockToken { AccessToken = "bar", ExpiresOn = DateTime.UtcNow.AddSeconds(60) } } }; var chain = new TokenProviderChain(providers); var token = await chain.GetTokenAsync(new List <string> { "something" }).ConfigureAwait(false); Assert.AreEqual("foo", token.AccessToken); }
public async Task NoAvailableProbesTestAsync() { var providers = new List <ITokenProvider> { new MockProvider { Available = false, Token = new MockToken { } }, }; var chain = new TokenProviderChain(providers); await Assert.ThrowsExceptionAsync <NoProvidersAvailableException>(async() => await chain.GetTokenAsync(new List <string> { "something" }) .ConfigureAwait(false)).ConfigureAwait(false); }