private void AccessToken_GetOrAdd(int userId, int contentId = 0, string feature = null) { var timeout1 = TimeSpan.FromMinutes(3); var timeout2 = TimeSpan.FromMinutes(10); var timeout3 = TimeSpan.FromMinutes(20); // create three different tokens var savedToken1 = AccessTokenVault.CreateToken(userId, timeout1, contentId, feature); var savedToken2 = AccessTokenVault.CreateToken(userId, timeout2, contentId, feature); var savedToken3 = AccessTokenVault.CreateToken(userId, timeout3, contentId, feature); // ACTION: get a token with the same parameters var token = AccessTokenVault.GetOrAddToken(userId, timeout3, contentId, feature); // ASSERT: we should get the last one AssertTokensAreEqual(savedToken3, token); // ACTION: get a token with shorter expiration time token = AccessTokenVault.GetOrAddToken(userId, timeout2, contentId, feature); // ASSERT: we should get the previous one AssertTokensAreEqual(savedToken2, token); // ACTION: get a token with an even shorter expiration time token = AccessTokenVault.GetOrAddToken(userId, TimeSpan.FromMinutes(7), contentId, feature); // ASSERT: we should get a totally new one, because the first // token (savedToken1) expires too soon. Assert.AreNotEqual(savedToken1.Value, token.Value); Assert.AreNotEqual(savedToken2.Value, token.Value); Assert.AreNotEqual(savedToken3.Value, token.Value); Assert.IsTrue(token.ExpirationDate < savedToken2.ExpirationDate); }
public void AccessToken_Delete_ByContent() { var userId1 = 42; var userId2 = 43; var contentId1 = 142; var contentId2 = 143; var timeout = TimeSpan.FromMinutes(10); var shortTimeout = TimeSpan.FromSeconds(1); var savedTokens = new[] { AccessTokenVault.CreateToken(userId1, timeout, contentId1), AccessTokenVault.CreateToken(userId1, shortTimeout, contentId2), AccessTokenVault.CreateToken(userId2, timeout, contentId1), AccessTokenVault.CreateToken(userId2, shortTimeout, contentId2), }; // ACTION Thread.Sleep(1100); AccessTokenVault.DeleteTokensByContent(contentId1); // ASSERT Assert.IsNull(AccessTokenVault.GetTokenById(savedTokens[0].Id)); Assert.IsNotNull(AccessTokenVault.GetTokenById(savedTokens[1].Id)); Assert.IsNull(AccessTokenVault.GetTokenById(savedTokens[2].Id)); Assert.IsNotNull(AccessTokenVault.GetTokenById(savedTokens[3].Id)); }
public void AccessToken_UpdateExpired() { var userId = 42; var timeout = TimeSpan.FromMilliseconds(1); var savedToken = AccessTokenVault.CreateToken(userId, timeout); // ACTION Thread.Sleep(1100); AccessTokenVault.UpdateToken(savedToken.Value, DateTime.UtcNow.AddMinutes(30.0d)); }
public void AccessToken_AssertExists_Expired() { var userId = 42; var timeout = TimeSpan.FromMilliseconds(1); var savedToken = AccessTokenVault.CreateToken(userId, timeout); // ACTION Thread.Sleep(1100); AccessTokenVault.AssertTokenExists(savedToken.Value); }
public async Tasks.Task AccessToken_AssertExists_Expired() { var userId = 42; var timeout = TimeSpan.FromMilliseconds(1); var savedToken = AccessTokenVault.CreateToken(userId, timeout); // ACTION Thread.Sleep(1100); await AccessTokenVault.AssertTokenExistsAsync(savedToken.Value, CancellationToken.None); }
public void AccessToken_Create_ForUser_ValueLength() { var userId = 42; var timeout = TimeSpan.FromMinutes(10); // ACTION var token = AccessTokenVault.CreateToken(userId, timeout); // ASSERT Assert.IsTrue(token.Value.Length >= 50); }
public void AccessToken_AssertExists() { var userId = 42; var timeout = TimeSpan.FromMinutes(10); var savedToken = AccessTokenVault.CreateToken(userId, timeout); // ACTION AccessTokenVault.AssertTokenExists(savedToken.Value); //Assert.AllRight() :) }
public void AccessToken_Exists() { var userId = 42; var timeout = TimeSpan.FromMinutes(10); var savedToken = AccessTokenVault.CreateToken(userId, timeout); // ACTION var isExists = AccessTokenVault.TokenExists(savedToken.Value); // ASSERT Assert.IsTrue(isExists); }
public void AccessToken_Get_ForUser() { var userId = 42; var timeout = TimeSpan.FromMinutes(10); var savedToken = AccessTokenVault.CreateToken(userId, timeout); // ACTION var token = AccessTokenVault.GetToken(savedToken.Value); // ASSERT AssertTokensAreEqual(savedToken, token); }
public void AccessToken_Create_ForUser_Twice() { var userId = 42; var timeout = TimeSpan.FromMinutes(10); // ACTION var token1 = AccessTokenVault.CreateToken(userId, timeout); var token2 = AccessTokenVault.CreateToken(userId, timeout); // ASSERT Assert.AreNotEqual(token1.Id, token2.Id); Assert.AreNotEqual(token1.Value, token2.Value); }
public void AccessToken_Get_Expired() { var userId = 42; var timeout = TimeSpan.FromMilliseconds(1); var savedToken = AccessTokenVault.CreateToken(userId, timeout); // ACTION Thread.Sleep(10); var token = AccessTokenVault.GetToken(savedToken.Value); // ASSERT Assert.IsNull(token); }
public void AccessToken_Get_ForUserAndFeature() { var userId = 42; var feature = "Feature1"; var timeout = TimeSpan.FromMinutes(10); var savedToken = AccessTokenVault.CreateToken(userId, timeout, 0, feature); // ACTION var token = AccessTokenVault.GetToken(savedToken.Value, 0, feature); // ASSERT AssertTokensAreEqual(savedToken, token); Assert.IsNull(AccessTokenVault.GetToken(savedToken.Value)); }
public void AccessToken_Get_ForUserAndContent() { var userId = 42; var contentId = 142; var timeout = TimeSpan.FromMinutes(10); var savedToken = AccessTokenVault.CreateToken(userId, timeout, contentId); // ACTION var token = AccessTokenVault.GetToken(savedToken.Value, contentId); // ASSERT AssertTokensAreEqual(savedToken, token); Assert.IsNull(AccessTokenVault.GetToken(savedToken.Value)); }
public void AccessToken_Update() { var userId = 42; var timeout = TimeSpan.FromMinutes(10.0d); var savedToken = AccessTokenVault.CreateToken(userId, timeout); Assert.IsTrue(savedToken.ExpirationDate < DateTime.UtcNow.AddMinutes(20.0d)); // ACTION AccessTokenVault.UpdateToken(savedToken.Value, DateTime.UtcNow.AddMinutes(30.0d)); // ASSERT var loadedToken = AccessTokenVault.GetToken(savedToken.Value); Assert.IsNotNull(loadedToken); Assert.IsTrue(loadedToken.ExpirationDate > DateTime.UtcNow.AddMinutes(20.0d)); }
public void AccessToken_Create_ForUser() { var userId = 42; var timeout = TimeSpan.FromMinutes(10); // ACTION var token = AccessTokenVault.CreateToken(userId, timeout); // ASSERT Assert.IsTrue(token.Id > 0); Assert.IsNotNull(token.Value); Assert.AreEqual(userId, token.UserId); Assert.AreEqual(0, token.ContentId); Assert.IsNull(token.Feature); Assert.IsTrue((DateTime.UtcNow - token.CreationDate).TotalMilliseconds < 1000); Assert.IsTrue((token.ExpirationDate - DateTime.UtcNow - timeout).TotalMilliseconds < 1000); }
public void AccessToken_GetByUser() { var userId = 42; var contentId = 142; var feature = "Feature1"; var timeout = TimeSpan.FromMinutes(10); var shortTimeout = TimeSpan.FromSeconds(1); var savedTokens = new[] { AccessTokenVault.CreateToken(userId, timeout), AccessTokenVault.CreateToken(userId, timeout, contentId), AccessTokenVault.CreateToken(userId, timeout, 0, feature), AccessTokenVault.CreateToken(userId, timeout, contentId, feature), AccessTokenVault.CreateToken(userId, shortTimeout), AccessTokenVault.CreateToken(userId, shortTimeout, contentId), AccessTokenVault.CreateToken(userId, shortTimeout, 0, feature), AccessTokenVault.CreateToken(userId, shortTimeout, contentId, feature), }; // ACTION-1 var tokens = AccessTokenVault.GetAllTokens(userId); // ASSERT-1 Assert.AreEqual( string.Join(",", savedTokens.OrderBy(x => x.Id).Select(x => x.Id.ToString())), string.Join(",", tokens.OrderBy(x => x.Id).Select(x => x.Id.ToString()))); // ACTION-2 Thread.Sleep(1100); tokens = AccessTokenVault.GetAllTokens(userId); // ASSERT-2 // The last 4 tokens are expired Assert.AreEqual( string.Join(",", savedTokens.Take(4).OrderBy(x => x.Id).Select(x => x.Id.ToString())), string.Join(",", tokens.OrderBy(x => x.Id).Select(x => x.Id.ToString()))); }