public async Task CreateRefreshToken_token_exists_in_store() { var client = new Client(); var accessToken = new Token(); var handle = await _subject.CreateRefreshTokenAsync(new RefreshTokenCreationRequest { Subject = _user, AccessToken = accessToken, Client = client }); (await _store.GetRefreshTokenAsync(handle)).Should().NotBeNull(); }
public async Task CreateRefreshToken_token_exists_in_store() { var client = new Client(); var accessToken = new Token(); var handle = await _subject.CreateRefreshTokenAsync(_user, accessToken, client); (await _store.GetRefreshTokenAsync(handle)).Should().NotBeNull(); }
public async Task Sliding_Expiration_within_absolute_Expiration() { var store = new InMemoryRefreshTokenStore(); var service = new DefaultRefreshTokenService(store); var client = await _clients.FindClientByIdAsync("roclient_sliding_refresh_expiration_one_time_only"); var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write"); var handle = await service.CreateRefreshTokenAsync(token, client); var refreshToken = await store.GetAsync(handle); var lifetime = refreshToken.LifeTime; await Task.Delay(1000); var newHandle = await service.UpdateRefreshTokenAsync(refreshToken, client); var newRefreshToken = await store.GetAsync(newHandle); var newLifetime = newRefreshToken.LifeTime; Assert.AreEqual(newLifetime, client.SlidingRefreshTokenLifetime + 1); }
public async Task Sliding_Expiration_does_not_exceed_absolute_Expiration() { var store = new InMemoryRefreshTokenStore(); var service = new DefaultRefreshTokenService(store); var client = await _clients.FindClientByIdAsync("roclient_sliding_refresh_expiration_one_time_only"); var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write"); var handle = await service.CreateRefreshTokenAsync(token, client); var refreshToken = await store.GetAsync(handle); var lifetime = refreshToken.LifeTime; await Task.Delay(8000); var newHandle = await service.UpdateRefreshTokenAsync(handle, refreshToken, client); var newRefreshToken = await store.GetAsync(newHandle); var newLifetime = newRefreshToken.LifeTime; newLifetime.Should().Be(client.AbsoluteRefreshTokenLifetime); }
public async Task OneTime_Handle_creates_new_Handle() { var store = new InMemoryRefreshTokenStore(); var service = new DefaultRefreshTokenService(store); var client = await _clients.FindClientByIdAsync("roclient_absolute_refresh_expiration_one_time_only"); var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write"); var handle = await service.CreateRefreshTokenAsync(token, client); var newHandle = await service.UpdateRefreshTokenAsync(handle, await store.GetAsync(handle), client); newHandle.Should().NotBe(handle); }
public async Task ReUse_Handle_reuses_Handle() { var store = new InMemoryRefreshTokenStore(); var service = new DefaultRefreshTokenService(store); var client = await _clients.FindClientByIdAsync("roclient_absolute_refresh_expiration_reuse"); var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write"); var handle = await service.CreateRefreshTokenAsync(token, client); var newHandle = await service.UpdateRefreshTokenAsync(await store.GetAsync(handle), client); Assert.AreEqual(handle, newHandle); }
public async Task Create_Refresh_Token_Sliding_Lifetime() { var store = new InMemoryRefreshTokenStore(); var service = new DefaultRefreshTokenService(store); var client = await _clients.FindClientByIdAsync("roclient_sliding_refresh_expiration_one_time_only"); var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write"); var handle = await service.CreateRefreshTokenAsync(token, client); // make sure a handle is returned string.IsNullOrWhiteSpace(handle).Should().BeFalse(); // make sure refresh token is in store var refreshToken = await store.GetAsync(handle); refreshToken.Should().NotBeNull(); // check refresh token values client.ClientId.Should().Be(refreshToken.ClientId); client.SlidingRefreshTokenLifetime.Should().Be(refreshToken.LifeTime); }
public async Task Create_Refresh_Token_Sliding_Lifetime() { var store = new InMemoryRefreshTokenStore(); var service = new DefaultRefreshTokenService(store); var client = await _clients.FindClientByIdAsync("roclient_sliding_refresh_expiration_one_time_only"); var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write"); var handle = await service.CreateRefreshTokenAsync(token, client); // make sure a handle is returned string.IsNullOrWhiteSpace(handle).Should().BeFalse(); // make sure refresh token is in store var refreshToken = await store.GetAsync(handle); refreshToken.Should().NotBeNull(); // check refresh token values client.ClientId.Should().Be(refreshToken.ClientId); client.SlidingRefreshTokenLifetime.Should().Be(refreshToken.LifeTime); }
public async Task Create_Refresh_Token_Absolute_Lifetime() { var store = new InMemoryRefreshTokenStore(); var service = new DefaultRefreshTokenService(store); var client = await _clients.FindClientByIdAsync("roclient_absolute_refresh_expiration_one_time_only"); var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write"); var handle = await service.CreateRefreshTokenAsync(token, client); // make sure a handle is returned Assert.IsFalse(string.IsNullOrWhiteSpace(handle)); // make sure refresh token is in store var refreshToken = await store.GetAsync(handle); Assert.IsNotNull(refreshToken); // check refresh token values Assert.AreEqual(refreshToken.ClientId, client.ClientId); Assert.AreEqual(refreshToken.LifeTime, client.AbsoluteRefreshTokenLifetime); }
public async Task Create_Refresh_Token_Absolute_Lifetime() { var client = roclient_absolute_refresh_expiration_one_time_only; var token = CreateAccessToken(client, "valid", 60, "read", "write"); var handle = await service.CreateRefreshTokenAsync(user, token, client); // make sure a handle is returned string.IsNullOrWhiteSpace(handle).Should().BeFalse(); // make sure refresh token is in store var refreshToken = await refreshTokenStore.GetAsync(handle); refreshToken.Should().NotBeNull(); // check refresh token values client.ClientId.Should().Be(refreshToken.ClientId); client.AbsoluteRefreshTokenLifetime.Should().Be(refreshToken.LifeTime); }
public async Task Sliding_Expiration_does_not_exceed_absolute_Expiration() { var store = new InMemoryRefreshTokenStore(); var service = new DefaultRefreshTokenService(store); var client = await _clients.FindClientByIdAsync("roclient_sliding_refresh_expiration_one_time_only"); var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write"); var handle = await service.CreateRefreshTokenAsync(token, client); var refreshToken = await store.GetAsync(handle); var lifetime = refreshToken.LifeTime; await Task.Delay(8000); var newHandle = await service.UpdateRefreshTokenAsync(handle, refreshToken, client); var newRefreshToken = await store.GetAsync(newHandle); var newLifetime = newRefreshToken.LifeTime; newLifetime.Should().Be(client.AbsoluteRefreshTokenLifetime); }
public async Task OneTime_Handle_creates_new_Handle() { var store = new InMemoryRefreshTokenStore(); var service = new DefaultRefreshTokenService(store); var client = await _clients.FindClientByIdAsync("roclient_absolute_refresh_expiration_one_time_only"); var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write"); var handle = await service.CreateRefreshTokenAsync(token, client); var newHandle = await service.UpdateRefreshTokenAsync(handle, await store.GetAsync(handle), client); newHandle.Should().NotBe(handle); }