public async Task AddAsync_ContainsDuplicate_Overwrites() { await _sut.AddAsync("1", CreateAccessToken("1", 3600)); await _sut.AddAsync("1", CreateAccessToken("modified", 3600)); var result = await _sut.GetAsync("1"); result.Should().Be("modified"); }
public async Task <string> GetAsync(AccessTokenRequestArgs args, CancellationToken token = default) { ValidateArgs(args); try { var accessToken = await _storage.GetAsync(args.RequestUri, token); if (accessToken != null) { return(accessToken); } var accessTokenResponse = await _client.SendRequestAsync(args, token); EnsureValidAccessToken(accessTokenResponse); await _storage.AddAsync(args.RequestUri, accessTokenResponse, token); return(accessTokenResponse.AccessToken); } catch (Exception e) { throw new AuthenticationException("Could not retrieve an access token.", e); } }