Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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"));
        }