public void GetData_Clear()
        {
            var cache = new Mock <CacheMock>()
            {
                CallBase = true
            };

            var proxy = new CacheProxy <DateTime>(() => DateTime.Now, cache: cache.Object, key: KEY);

            var v1 = proxy.GetData();

            Thread.Sleep(50);
            var v2 = proxy.GetData();

            proxy.Clear();

            Thread.Sleep(50);
            var v3 = proxy.GetData();

            Assert.Equal(v1, v2);
            Assert.NotEqual(v2, v3);

            cache.Verify(c => c.Set(KEY, v1, CacheProxy <DateTime> .EXPIRATION_DEFAULT, SerializationFormat.Null), Times.Once);
            cache.Verify(c => c.Set(KEY, v3, CacheProxy <DateTime> .EXPIRATION_DEFAULT, SerializationFormat.Null), Times.Once);
            cache.Verify(c => c.Get <DateTime>(KEY, SerializationFormat.Null), Times.Exactly(3));
        }
예제 #2
0
        public void Clear()
        {
            // Arrange
            m_mockCache
            .Setup(cache => cache.Clear())
            .Returns(true);

            // Act
            m_cacheProxy.Clear();

            // Assert
            Assert.Equal(0, m_cacheProxy.Count);
            Assert.Equal(0, m_cacheProxy.MissCount);
        }
        public void GetData_Clear()
        {
            var cache = new Mock<CacheMock>() { CallBase = true };

            var proxy = new CacheProxy<DateTime>(() => DateTime.Now, cache: cache.Object, key: KEY);

            var v1 = proxy.GetData();
            Thread.Sleep(50);
            var v2 = proxy.GetData();

            proxy.Clear();

            Thread.Sleep(50);
            var v3 = proxy.GetData();

            Assert.Equal(v1, v2);
            Assert.NotEqual(v2, v3);

            cache.Verify(c => c.Set(KEY, v1, CacheProxy<DateTime>.EXPIRATION_DEFAULT, SerializationFormat.Null), Times.Once);
            cache.Verify(c => c.Set(KEY, v3, CacheProxy<DateTime>.EXPIRATION_DEFAULT, SerializationFormat.Null), Times.Once);
            cache.Verify(c => c.Get<DateTime>(KEY, SerializationFormat.Null), Times.Exactly(3));
        }