public void TestCaching() { ICache cache = new NonExpiringCache(); context.ObjectFactory.RegisterSingleton("inventors", cache); ProxyFactory pf = new ProxyFactory(new InventorStore()); pf.AddAdvisors(cacheAspect); IInventorStore store = (IInventorStore)pf.GetProxy(); Assert.AreEqual(0, cache.Count); IList inventors = store.GetAll(); Assert.AreEqual(2, cache.Count); store.Delete((Inventor)inventors[0]); Assert.AreEqual(1, cache.Count); Inventor tesla = store.Load("Nikola Tesla"); Assert.AreEqual(2, cache.Count); store.Save(tesla); Assert.AreEqual(2, cache.Count); Assert.AreEqual("Serbian", ((Inventor)cache.Get("Nikola Tesla")).Nationality); store.DeleteAll(); Assert.AreEqual(0, cache.Count); }
public void UseMethodInfoForKeyGeneration() { ICache cache = new NonExpiringCache(); context.ObjectFactory.RegisterSingleton("defaultCache", cache); ProxyFactory pf = new ProxyFactory(new GenericDao <string, int>()); pf.AddAdvisors(cacheAspect); IGenericDao <string, int> dao = (IGenericDao <string, int>)pf.GetProxy(); Assert.AreEqual(0, cache.Count); dao.Load(1); Assert.AreEqual(1, cache.Count); // actually, it should be null, because default(string) = null // but it returns the NullValue marker created by the CacheResultAttribute Assert.IsNotNull(cache.Get("String_1")); }