예제 #1
0
        public async Task GetExpired_Should_Succeed()
        {
            var expiredTokenA = await TokenDAO.Create(DbConnection, "description", DateTimeOffset.MinValue);

            var expiredTokenB = await TokenDAO.Create(DbConnection, "description", DateTimeOffset.MinValue);

            var expiredTokenC = await TokenDAO.Create(DbConnection, "description", DateTimeOffset.MinValue);

            var expiredTokenD = await TokenDAO.Create(DbConnection, "description", DateTimeOffset.MinValue);

            var notExpiredTokenA = await TokenDAO.Create(DbConnection, "description", DateTimeOffset.MaxValue);

            var notExpiredTokenB = await TokenDAO.Create(DbConnection, "description", DateTimeOffset.MaxValue);

            var expiredTokens = new List <string> {
                expiredTokenA, expiredTokenB, expiredTokenC, expiredTokenD
            };

            var expiredPage1 = await TokenDAO.GetExpired(DbConnection, "0", 3);

            Assert.Equal(expiredPage1.Count, 3);
            foreach (var expiredToken in expiredPage1)
            {
                Assert.Contains(expiredToken, expiredTokens);
            }

            var expiredPage2 = await TokenDAO.GetExpired(DbConnection, expiredPage1[2], 3);

            Assert.Equal(expiredPage2.Count, 1);
            Assert.Contains(expiredPage2[0], expiredTokens);
        }
예제 #2
0
        public async Task CreateToken_WithExpiration_Should_Succeed()
        {
            DateTimeOffset now   = DateTimeOffset.Now;
            var            token = await TokenDAO.Create(DbConnection, "description", now);

            Assert.NotNull(token);

            var fullToken = await TokenDAO.GetById(DbConnection, token);

            Assert.Equal(token, fullToken.ID);
            Assert.Equal(now.ToUnixTimeMilliseconds(), fullToken.ExpiresAt);
        }
예제 #3
0
        public async Task CreateToken_WithNullExpiration_Should_Succeed()
        {
            var token = await TokenDAO.Create(DbConnection, "description", null);

            Assert.NotNull(token);

            var fullToken = await TokenDAO.GetById(DbConnection, token);

            Assert.Equal(token, fullToken.ID);
            Assert.NotNull(fullToken.CreatedAt);
            Assert.Null(fullToken.ExpiresAt);
            Assert.Null(fullToken.RevokedAt);
        }
예제 #4
0
        public async Task InvalidateToken_Should_Succeed()
        {
            var token = await TokenDAO.Create(DbConnection, "description", null);

            Assert.NotNull(token);

            var fullToken = await TokenDAO.GetById(DbConnection, token);

            Assert.Null(fullToken.ExpiresAt);

            await TokenDAO.Invalidate(DbConnection, token);

            fullToken = await TokenDAO.GetById(DbConnection, token);

            Assert.NotNull(fullToken.RevokedAt);
        }
예제 #5
0
 public async Task <string> Create(string description, DateTimeOffset?expiration)
 {
     return(await TokenDAO.Create(DbConnection, description, expiration));
 }