public void Get_All_Caches_As_Single_List() { var getAll = new[] { new AuditItem(1, AuditType.Copy, 123, "test", "blah"), new AuditItem(2, AuditType.Copy, 123, "test", "blah2") }; var cached = new List <string>(); IList list = null; var cache = new Mock <IAppPolicyCache>(); cache.Setup(x => x.Insert(It.IsAny <string>(), It.IsAny <Func <object> >(), It.IsAny <TimeSpan?>(), It.IsAny <bool>(), It.IsAny <string[]>())) .Callback((string cacheKey, Func <object> o, TimeSpan? t, bool b, string[] s) => { cached.Add(cacheKey); list = o() as IList; }); cache.Setup(x => x.Get(It.IsAny <string>())).Returns(new AuditItem[] { }); var defaultPolicy = new FullDataSetRepositoryCachePolicy <AuditItem, object>(cache.Object, DefaultAccessor, item => item.Id, false); var found = defaultPolicy.GetAll(new object[] { }, ids => getAll); Assert.AreEqual(1, cached.Count); Assert.IsNotNull(list); }
public void Get_All_Caches_As_Single_List() { var getAll = new[] { new AuditItem(1, "blah", AuditType.Copy, 123), new AuditItem(2, "blah2", AuditType.Copy, 123) }; var cached = new List <string>(); IList list = null; var cache = new Mock <IRuntimeCacheProvider>(); cache.Setup(x => x.InsertCacheItem(It.IsAny <string>(), It.IsAny <Func <object> >(), It.IsAny <TimeSpan?>(), It.IsAny <bool>(), It.IsAny <CacheItemPriority>(), It.IsAny <CacheItemRemovedCallback>(), It.IsAny <string[]>())) .Callback((string cacheKey, Func <object> o, TimeSpan? t, bool b, CacheItemPriority cip, CacheItemRemovedCallback circ, string[] s) => { cached.Add(cacheKey); list = o() as IList; }); cache.Setup(x => x.GetCacheItem(It.IsAny <string>())).Returns(new AuditItem[] { }); var defaultPolicy = new FullDataSetRepositoryCachePolicy <AuditItem, object>(cache.Object, item => item.Id, false); var found = defaultPolicy.GetAll(new object[] { }, ids => getAll); Assert.AreEqual(1, cached.Count); Assert.IsNotNull(list); }
public void Get_All_Without_Ids_From_Cache() { AuditItem[] getAll = new[] { (AuditItem)null }; var cache = new Mock <IAppPolicyCache>(); cache.Setup(x => x.Get(It.IsAny <string>())).Returns(() => new DeepCloneableList <AuditItem>(ListCloneBehavior.CloneOnce) { new AuditItem(1, AuditType.Copy, 123, "test", "blah"), new AuditItem(2, AuditType.Copy, 123, "test", "blah2") }); var defaultPolicy = new FullDataSetRepositoryCachePolicy <AuditItem, object>(cache.Object, DefaultAccessor, item => item.Id, false); AuditItem[] found = defaultPolicy.GetAll(new object[] { }, ids => getAll); Assert.AreEqual(2, found.Length); }
public void Get_All_Without_Ids_From_Cache() { var getAll = new[] { (AuditItem)null }; var cache = new Mock <IRuntimeCacheProvider>(); cache.Setup(x => x.GetCacheItem(It.IsAny <string>())).Returns(() => new DeepCloneableList <AuditItem>(ListCloneBehavior.CloneOnce) { new AuditItem(1, "blah", AuditType.Copy, 123), new AuditItem(2, "blah2", AuditType.Copy, 123) }); var defaultPolicy = new FullDataSetRepositoryCachePolicy <AuditItem, object>(cache.Object, item => item.Id, false); var found = defaultPolicy.GetAll(new object[] { }, ids => getAll); Assert.AreEqual(2, found.Length); }
public void Get_All_Caches_Empty_List() { var getAll = new AuditItem[] {}; var cached = new List <string>(); IList list = null; var cache = new Mock <IAppPolicyCache>(); cache.Setup(x => x.Insert(It.IsAny <string>(), It.IsAny <Func <object> >(), It.IsAny <TimeSpan?>(), It.IsAny <bool>(), It.IsAny <CacheItemPriority>(), It.IsAny <CacheItemRemovedCallback>(), It.IsAny <string[]>())) .Callback((string cacheKey, Func <object> o, TimeSpan? t, bool b, CacheItemPriority cip, CacheItemRemovedCallback circ, string[] s) => { cached.Add(cacheKey); list = o() as IList; }); cache.Setup(x => x.Get(It.IsAny <string>())).Returns(() => { //return null if this is the first pass return(cached.Any() ? new DeepCloneableList <AuditItem>(ListCloneBehavior.CloneOnce) : null); }); var policy = new FullDataSetRepositoryCachePolicy <AuditItem, object>(cache.Object, DefaultAccessor, item => item.Id, false); var found = policy.GetAll(new object[] {}, ids => getAll); Assert.AreEqual(1, cached.Count); Assert.IsNotNull(list); //Do it again, ensure that its coming from the cache! policy = new FullDataSetRepositoryCachePolicy <AuditItem, object>(cache.Object, DefaultAccessor, item => item.Id, false); found = policy.GetAll(new object[] { }, ids => getAll); Assert.AreEqual(1, cached.Count); Assert.IsNotNull(list); }