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); }
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); }