public void GetData_Clear() { var cache = new Mock <CacheMock>() { CallBase = true }; var proxy = new DeferredCacheProxy <DateTime>(cache.Object, KEY); var v1 = proxy.GetData(() => DateTime.Now); Thread.Sleep(50); var v2 = proxy.GetData(() => DateTime.Now); proxy.Clear(); Thread.Sleep(50); var v3 = proxy.GetData(() => DateTime.Now); Assert.Equal(v1, v2); Assert.NotEqual(v2, v3); cache.Verify(c => c.Set(KEY, v1, DeferredCacheProxy <DateTime> .EXPIRATION_DEFAULT, SerializationFormat.Null), Times.Once); cache.Verify(c => c.Set(KEY, v3, DeferredCacheProxy <DateTime> .EXPIRATION_DEFAULT, SerializationFormat.Null), Times.Once); cache.Verify(c => c.Get <DateTime>(KEY, SerializationFormat.Null), Times.Exactly(3)); }
public void GetData_DefaultExpiration() { var cache = new Mock<CacheMock>() { CallBase = true }; var proxy = new DeferredCacheProxy<DateTime>(cache.Object, KEY); var v1 = proxy.GetData(() => DateTime.Now); Thread.Sleep(50); var v2 = proxy.GetData(() => DateTime.Now); Thread.Sleep(50); var v3 = proxy.GetData(() => DateTime.Now); Assert.Equal(v1, v2); Assert.Equal(v2, v3); cache.Verify(c => c.Set(KEY, v1, DeferredCacheProxy<DateTime>.EXPIRATION_DEFAULT, SerializationFormat.Null), Times.Once); cache.Verify(c => c.Get<DateTime>(KEY, SerializationFormat.Null), Times.Exactly(3)); }
public void GetData_CustomExpiration() { var cache = new Mock<CacheMock>() { CallBase = true }; var expiration = TimeSpan.FromMinutes(1); var proxy = new DeferredCacheProxy<DateTime>(cache.Object, KEY, expiration); var v1 = proxy.GetData(() => DateTime.Now); Thread.Sleep(50); var v2 = proxy.GetData(() => DateTime.Now); Thread.Sleep(50); var v3 = proxy.GetData(() => DateTime.Now); Assert.Equal(v1, v2); Assert.Equal(v2, v3); cache.Verify(c => c.Set(KEY, v1, expiration, SerializationFormat.Null), Times.Once); cache.Verify(c => c.Get<DateTime>(KEY, SerializationFormat.Null), Times.Exactly(3)); }
public void GetData_Multithreaded() { var cache = new Mock<CacheMock>() { CallBase = true }; var proxy = new DeferredCacheProxy<DateTime>(cache.Object, KEY); DateTime v1 = default(DateTime); DateTime v2 = default(DateTime); DateTime v3 = default(DateTime); Parallel.Invoke( () => { v1 = proxy.GetData(() => DateTime.Now); }, () => { v2 = proxy.GetData(() => DateTime.Now); }, () => { v3 = proxy.GetData(() => DateTime.Now); }); Assert.Equal(v1, v2); Assert.Equal(v2, v3); cache.Verify(c => c.Set(KEY, v1, DeferredCacheProxy<DateTime>.EXPIRATION_DEFAULT, SerializationFormat.Null), Times.Once); cache.Verify(c => c.Get<DateTime>(KEY, SerializationFormat.Null), Times.Exactly(3)); }
public void GetData_Multithreaded() { var cache = new Mock <CacheMock>() { CallBase = true }; var proxy = new DeferredCacheProxy <DateTime>(cache.Object, KEY); DateTime v1 = default(DateTime); DateTime v2 = default(DateTime); DateTime v3 = default(DateTime); Parallel.Invoke( () => { v1 = proxy.GetData(() => DateTime.Now); }, () => { v2 = proxy.GetData(() => DateTime.Now); }, () => { v3 = proxy.GetData(() => DateTime.Now); }); Assert.Equal(v1, v2); Assert.Equal(v2, v3); cache.Verify(c => c.Set(KEY, v1, DeferredCacheProxy <DateTime> .EXPIRATION_DEFAULT, SerializationFormat.Null), Times.Once); cache.Verify(c => c.Get <DateTime>(KEY, SerializationFormat.Null), Times.Exactly(3)); }
public void GetData_CustomExpiration() { var cache = new Mock <CacheMock>() { CallBase = true }; var expiration = TimeSpan.FromMinutes(1); var proxy = new DeferredCacheProxy <DateTime>(cache.Object, KEY, expiration); var v1 = proxy.GetData(() => DateTime.Now); Thread.Sleep(50); var v2 = proxy.GetData(() => DateTime.Now); Thread.Sleep(50); var v3 = proxy.GetData(() => DateTime.Now); Assert.Equal(v1, v2); Assert.Equal(v2, v3); cache.Verify(c => c.Set(KEY, v1, expiration, SerializationFormat.Null), Times.Once); cache.Verify(c => c.Get <DateTime>(KEY, SerializationFormat.Null), Times.Exactly(3)); }