Exemple #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);
        }
Exemple #2
0
        public IObservable <string> GetExpired()
        {
            var pagingStream = AsyncEnumerable.ToObservable <string, string>(
                "0",
                page => page.Count == 0,
                page => page.Count > 0 ? page[page.Count - 1] : "0",
                async(floor) => await TokenDAO.GetExpired(DbConnection, floor, 500)
                );

            return(pagingStream);
        }