Пример #1
0
        public void GetOrAddAndGetSlidingExpiration_NotExists()
        {
            // Arrange
            MemoryCache.Default.Remove("GetOrAddAndGetSlidingExpiration_NotExists");
            var componentUnderTest = new MemoryCacheAdapter();

            // Act
            var actual = componentUnderTest.GetOrAddAndGetSlidingExpiration("GetOrAddAndGetSlidingExpiration_NotExists", TimeSpan.FromMinutes(1), () => "value2");

            // Assert
            actual.ShouldHaveSameValueAs("value2");
            MemoryCache.Default.Get("GetOrAddAndGetSlidingExpiration_NotExists").ShouldHaveSameValueAs("value2");
        }
Пример #2
0
        public void GetOrAddAndGetSlidingExpiration_NotExists_Timeout()
        {
            // Arrange
            MemoryCache.Default.Remove("GetOrAddAndGetSlidingExpiration_NotExists_Timeout");
            var componentUnderTest = new MemoryCacheAdapter();

            // Act
            var actual = componentUnderTest.GetOrAddAndGetSlidingExpiration("GetOrAddAndGetSlidingExpiration_NotExists_Timeout", TimeSpan.FromSeconds(2), () => "value2");

            // Assert
            actual.ShouldHaveSameValueAs("value2");
            MemoryCache.Default.Get("GetOrAddAndGetSlidingExpiration_NotExists_Timeout").ShouldHaveSameValueAs("value2");

            Thread.Sleep(2100);
            componentUnderTest.Get <string>("GetOrAddAndGetSlidingExpiration_NotExists_Timeout").ShouldHaveSameValueAs(null);
        }
Пример #3
0
        public void GetOrAddAndGetSlidingExpiration_NotExists_RenewAndThenTimeout()
        {
            // Arrange
            const string key = "GetOrAddAndGetSlidingExpiration_NotExists_RenewAndThenTimeout";

            MemoryCache.Default.Remove(key);
            var componentUnderTest = new MemoryCacheAdapter();

            // Act
            var actual = componentUnderTest.GetOrAddAndGetSlidingExpiration(key, TimeSpan.FromSeconds(2), () => "value2");

            // Assert
            actual.ShouldHaveSameValueAs("value2");
            MemoryCache.Default.Get(key).ShouldHaveSameValueAs("value2");

            for (int i = 0; i < 3; i++)
            {
                Thread.Sleep(1000);
                componentUnderTest.Get <string>(key).ShouldHaveSameValueAs("value2");
            }
            Thread.Sleep(2100);
            componentUnderTest.Get <string>(key).ShouldHaveSameValueAs(null);
        }