Exemple #1
0
        public async Task ShouldGetExpiredKeysLessThanMaxDate()
        {
            // Arrange
            await _redisClient.Remove(_setKey).ConfigureAwait(false);

            var key1 = _fixture.FormatKey("expiringkey.1");
            var key2 = _fixture.FormatKey("expiringkey.2");
            var key3 = _fixture.FormatKey("expiringkey.3");

            var minus10Date = DateTime.Now.AddYears(-1).AddMinutes(-10);
            var minus20Date = DateTime.Now.AddYears(-1).AddMinutes(-20);
            var minus30Date = DateTime.Now.AddYears(-1).AddMinutes(-30);

            await Task.WhenAll(_sut.SetKeyExpiry(_redisClient, key1, minus10Date),
                               _sut.SetKeyExpiry(_redisClient, key2, minus20Date),
                               _sut.SetKeyExpiry(_redisClient, key3, minus30Date))
            .ConfigureAwait(false);

            // Act
            var result = (await _sut.GetExpiredKeys(_redisClient, minus20Date).ConfigureAwait(false))?.ToArray();

            // Assert
            result.ShouldNotBeNull();
            result?.Length.ShouldBe(2);
            result.ShouldNotContain(key1, $"{key1} should not exist");
            result.ShouldContain(key2, $"{key2} should exist");
            result.ShouldContain(key3, $"{key3} should exist");
        }