public void TestDiskCacheProviderCreate() { Assert.Throws <ArgumentNullException>(() => new DiskCacheProvider(null)); DiskCacheProvider provider = new DiskCacheProvider(Path.GetTempPath()); Assert.AreEqual(Path.GetTempPath(), provider.RootDirectory); }
public void TestDiskCacheProviderLoad() { DiskCacheProvider provider = new DiskCacheProvider(Path.GetTempPath() + nameof(TestDiskCacheProviderLoad)); provider.Store("test", "hellofriend"); provider.Store("tost", "hallofreund"); Assert.AreEqual("hellofriend", provider.Load <string>("test")); Assert.AreEqual("hallofreund", provider.Load <string>("tost")); }
public void TestDiskCacheProviderStore() { DiskCacheProvider provider = new DiskCacheProvider(Path.GetTempPath() + nameof(TestDiskCacheProviderStore)); provider.Store("test", "hellofriend"); provider.Store("tost", "hallofreund"); Assert.IsTrue(provider.IsCached("test")); Assert.IsTrue(provider.IsCached("tost")); }
public void DiskCacheTest() { Task.Run( (Func<Task>) (async () => { using ( var provider = new DiskCacheProvider( Path.Combine( Path.GetTempPath(), "Cache" ) ) ) { var service = new CacheService( (IAsyncCacheProvider) provider, (Caching.CachePolicy) Caching.CachePolicy.Expires( (TimeSpan) TimeSpan.FromHours( (double) 1 ) ) ); Assert.AreEqual( await service.Fetch( Path.GetRandomFileName().Replace( ".", "" ), "ABC" ), "ABC" ); for ( var i = 0; i < 1000; i++ ) { var _value = await service.FetchOrAdd<object>( (string) "Test", (Func<Task<object>>) this.ValueFactory ); Assert.AreEqual( (object) _value, value ); } { await service.Remove( "Test" ); value = null; var _value = await service.Fetch( "Test", "Test" ); Assert.AreEqual( _value, "Test" ); Assert.AreNotEqual( _value, value ); } { await service.Update<object>( (string) "Test", (Func<Task<object>>) this.ValueFactory ); var _value = await service.FetchOrAdd<object>( (string) "Test", (Func<Task<object>>) this.ValueFactory ); Assert.AreEqual( (object) _value, value ); } { await service.Clear(); var _value = await service.Fetch( "Test", "Test" ); Assert.AreEqual( _value, "Test" ); Assert.AreNotEqual( _value, value ); } } }) ).Wait(); }
public void DiskCacheTest() { Task.Run((Func <Task>)(async() => { using (var provider = new DiskCacheProvider(Path.Combine(Path.GetTempPath(), "Cache"))) { var service = new CacheService((IAsyncCacheProvider)provider, (Caching.CachePolicy)Caching.CachePolicy.Expires((TimeSpan)TimeSpan.FromHours((double)1))); Assert.AreEqual(await service.Fetch(Path.GetRandomFileName().Replace(".", ""), "ABC"), "ABC"); for (var i = 0; i < 1000; i++) { var _value = await service.FetchOrAdd <object>((string)"Test", (Func <Task <object> >) this.ValueFactory); Assert.AreEqual((object)_value, value); } { await service.Remove("Test"); value = null; var _value = await service.Fetch("Test", "Test"); Assert.AreEqual(_value, "Test"); Assert.AreNotEqual(_value, value); } { await service.Update <object>((string)"Test", (Func <Task <object> >) this.ValueFactory); var _value = await service.FetchOrAdd <object>((string)"Test", (Func <Task <object> >) this.ValueFactory); Assert.AreEqual((object)_value, value); } { await service.Clear(); var _value = await service.Fetch("Test", "Test"); Assert.AreEqual(_value, "Test"); Assert.AreNotEqual(_value, value); } } })).Wait(); }
public void DiskCache() { using (var provider = new DiskCacheProvider(@"C:\Temp\Cache")) { var cacheService = new CacheService(provider); var tasks = new List <Task>(); //测试并发创建值 for (int i = 0; i < 1000; i++) { Func <int, Task> task = async(j) => { await Task.Yield(); var value = await cacheService.FetchOrAdd("Test", ValueFactory, CachePolicy.Expires(TimeSpan.FromHours(1))); Assert.AreEqual(value, _value); }; tasks.Add(task(i)); } Task.WaitAll(tasks.ToArray()); //测试从缓存读取 for (int i = 0; i < 1000; i++) { Func <int, Task> task = async(j) => { await Task.Yield(); var value = await cacheService.FetchOrAdd("Test", ValueFactory, CachePolicy.Expires(TimeSpan.FromHours(1))); Assert.AreEqual(value, _value); }; tasks.Add(task(i)); } Task.WaitAll(tasks.ToArray()); //清除缓存 cacheService.Clear(); _value = null; //测试创建新值 for (int i = 0; i < 1000; i++) { Func <int, Task> task = async(j) => { await Task.Yield(); var value = await cacheService.FetchOrAdd("Test", ValueFactory, CachePolicy.Expires(TimeSpan.FromHours(1))); Assert.AreEqual(value, _value); }; tasks.Add(task(i)); } Task.WaitAll(tasks.ToArray()); cacheService.Clear(); { _value = null; var value = cacheService.FetchOrAdd("Test", ValueFactory, CachePolicy.Expires(TimeSpan.FromHours(1))).Result; Assert.IsNotNull(_value); Assert.AreEqual(_value, value); } } }
public void DiskCache() { using ( var provider = new DiskCacheProvider( @"C:\Temp\Cache" ) ) { var cacheService = new CacheService( provider ); var tasks = new List<Task>(); //测试并发创建值 for ( int i = 0; i < 1000; i++ ) { Func<int, Task> task = async ( j ) => { await Task.Yield(); var value = await cacheService.FetchOrAdd( "Test", ValueFactory, CachePolicy.Expires( TimeSpan.FromHours( 1 ) ) ); Assert.AreEqual( value, _value ); }; tasks.Add( task( i ) ); } Task.WaitAll( tasks.ToArray() ); //测试从缓存读取 for ( int i = 0; i < 1000; i++ ) { Func<int, Task> task = async ( j ) => { await Task.Yield(); var value = await cacheService.FetchOrAdd( "Test", ValueFactory, CachePolicy.Expires( TimeSpan.FromHours( 1 ) ) ); Assert.AreEqual( value, _value ); }; tasks.Add( task( i ) ); } Task.WaitAll( tasks.ToArray() ); //清除缓存 cacheService.Clear(); _value = null; //测试创建新值 for ( int i = 0; i < 1000; i++ ) { Func<int, Task> task = async ( j ) => { await Task.Yield(); var value = await cacheService.FetchOrAdd( "Test", ValueFactory, CachePolicy.Expires( TimeSpan.FromHours( 1 ) ) ); Assert.AreEqual( value, _value ); }; tasks.Add( task( i ) ); } Task.WaitAll( tasks.ToArray() ); cacheService.Clear(); { _value = null; var value = cacheService.FetchOrAdd( "Test", ValueFactory, CachePolicy.Expires( TimeSpan.FromHours( 1 ) ) ).Result; Assert.IsNotNull( _value ); Assert.AreEqual( _value, value ); } } }