Ejemplo n.º 1
0
        public void CacheItemPolicy()
        {
            //Arrange
            var entityManager = new EntitiesManager <Category>(new MemoryCache <IEnumerable <Category> >(cachePolicyService));

            FieldInfo  cacheField      = entityManager.GetType().GetField("cache", BindingFlags.NonPublic | BindingFlags.Instance);
            object     cacheFieldValue = cacheField.GetValue(entityManager);
            MethodInfo method          = cacheFieldValue.GetType().GetMethod("Get", new Type[] { typeof(string) });

            //Act
            var entities = entityManager.GetEntities();

            using (var dbContext = new Northwind())
            {
                dbContext.Configuration.LazyLoadingEnabled   = false;
                dbContext.Configuration.ProxyCreationEnabled = false;
                dbContext.Categories.Add(new Category {
                    CategoryName = "Milk products"
                });
                dbContext.SaveChanges();
            }
            Thread.Sleep(3000);
            IEnumerable <Category> cacheValue = (IEnumerable <Category>)method.Invoke(cacheFieldValue,
                                                                                      new object[] { Thread.CurrentPrincipal.Identity.Name + " " + typeof(Category) });

            //Assert
            Assert.IsTrue(entities != null);
            Assert.IsTrue(cacheValue == null);
        }
Ejemplo n.º 2
0
        public void CustomersUsingRedisCache()
        {
            //Arrange
            var entityManager = new EntitiesManager <Customer>(new RedisCache <IEnumerable <Customer> >("localhost", cachePolicyService));

            FieldInfo  cacheField      = entityManager.GetType().GetField("cache", BindingFlags.NonPublic | BindingFlags.Instance);
            object     cacheFieldValue = cacheField.GetValue(entityManager);
            MethodInfo method          = cacheFieldValue.GetType().GetMethod("Get", new Type[] { typeof(string) });

            //Act
            var entities = entityManager.GetEntities();
            IEnumerable <Customer> cacheValue = (IEnumerable <Customer>)method.Invoke(cacheFieldValue,
                                                                                      new object[] { Thread.CurrentPrincipal.Identity.Name + " " + typeof(Customer) });

            //Assert
            Assert.IsTrue(entities != null);
            Assert.IsTrue(cacheValue != null);
            Assert.IsTrue(cacheValue.Any());
        }
Ejemplo n.º 3
0
        public void ExcpirationTimeTestInvalidation()
        {
            //Arrange
            var entityManager = new EntitiesManager <Category>(new MemoryCache <IEnumerable <Category> >(cachePolicyService));

            FieldInfo  cacheField      = entityManager.GetType().GetField("cache", BindingFlags.NonPublic | BindingFlags.Instance);
            object     cacheFieldValue = cacheField.GetValue(entityManager);
            MethodInfo method          = cacheFieldValue.GetType().GetMethod("Get", new Type[] { typeof(string) });
            double     interval        = Convert.ToDouble(ConfigurationManager.AppSettings["TimeIntervalMilliseconds"]) + 1;

            //Act
            var entities = entityManager.GetEntities();

            System.Threading.Thread.Sleep(Convert.ToInt32(interval));

            IEnumerable <Category> cacheValue = (IEnumerable <Category>)method.Invoke(cacheFieldValue,
                                                                                      new object[] { Thread.CurrentPrincipal.Identity.Name + " " + typeof(Category) });

            //Assert
            Assert.IsTrue(entities != null);
            Assert.IsTrue(cacheValue == null);
        }