Exemplo n.º 1
0
        public void Can_Get_Entities_By_Type_From_Registry()
        {
            var entities = _registry.GetAllByType(typeof(MockedEntity));

            Assert.That(entities, Is.Not.Null);
            Assert.That(entities.Any(), Is.True);
            Assert.That(entities.Count(), Is.GreaterThanOrEqualTo(6));
        }
Exemplo n.º 2
0
        public void Can_Clear_By_Type()
        {
            var customObj1 = new CustomMockedEntity {
                Id = 5, Key = 5.ToGuid(), Alias = "mocked5", Name = "Mocked5", Value = Guid.NewGuid().ToString("n")
            };
            var customObj2 = new CustomMockedEntity {
                Id = 6, Key = 6.ToGuid(), Alias = "mocked6", Name = "Mocked6", Value = Guid.NewGuid().ToString("n")
            };

            _registry.Save(typeof(CustomMockedEntity), customObj1);
            _registry.Save(typeof(CustomMockedEntity), customObj2);

            Assert.AreEqual(2, _registry.GetAllByType(typeof(CustomMockedEntity)).Count());

            _registry.Clear(typeof(CustomMockedEntity));

            Assert.AreEqual(0, _registry.GetAllByType(typeof(CustomMockedEntity)).Count());
        }
        public void Tracked_Keys_Removed_When_Cache_Removed()
        {
            _registry = RuntimeCacheProvider.Current;

            //Fill the registry with random entities
            var entity1 = new MockedEntity { Id = 1, Key = 1.ToGuid(), Alias = "mocked1", Name = "Mocked1", Value = Guid.NewGuid().ToString("n") };
            var entity2 = new MockedEntity { Id = 2, Key = 2.ToGuid(), Alias = "mocked2", Name = "Mocked2", Value = Guid.NewGuid().ToString("n") };
            var entity3 = new MockedEntity { Id = 3, Key = 3.ToGuid(), Alias = "mocked3", Name = "Mocked3", Value = Guid.NewGuid().ToString("n") };

            _registry.Save(typeof(MockedEntity), entity1);
            _registry.Save(typeof(MockedEntity), entity2);
            _registry.Save(typeof(MockedEntity), entity3);

            //now clear the runtime cache internally
            ((RuntimeCacheProvider)_registry).ClearDataCache();

            Assert.AreEqual(0, _registry.GetAllByType(typeof (MockedEntity)).Count());
        }
Exemplo n.º 4
0
        /// <summary>
        /// Gets all entities of type TEntity or a list according to the passed in Ids
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        public IEnumerable <TEntity> GetAll(params TId[] ids)
        {
            if (ids.Any())
            {
                var entities = _cache.GetByIds(typeof(TEntity), ids.Select(id => id is int?ConvertIdToGuid(id) : ConvertStringIdToGuid(id.ToString())).ToList());
                if (ids.Count().Equals(entities.Count()) && entities.Any(x => x == null) == false)
                {
                    return(entities.Select(x => (TEntity)x));
                }
            }
            else
            {
                var allEntities = _cache.GetAllByType(typeof(TEntity));

                if (allEntities.Any())
                {
                    //Get count of all entities of current type (TEntity) to ensure cached result is correct
                    var query = Query <TEntity> .Builder.Where(x => x.Id != 0);

                    int totalCount = PerformCount(query);

                    if (allEntities.Count() == totalCount)
                    {
                        return(allEntities.Select(x => (TEntity)x));
                    }
                }
            }

            var entityCollection = PerformGetAll(ids);

            foreach (var entity in entityCollection)
            {
                if (entity != null)
                {
                    _cache.Save(typeof(TEntity), entity);
                }
            }

            return(entityCollection);
        }
        public void Tracked_Keys_Removed_When_Cache_Removed()
        {
            _registry = RuntimeCacheProvider.Current;

            //Fill the registry with random entities
            var entity1 = new MockedEntity {
                Id = 1, Key = 1.ToGuid(), Alias = "mocked1", Name = "Mocked1", Value = Guid.NewGuid().ToString("n")
            };
            var entity2 = new MockedEntity {
                Id = 2, Key = 2.ToGuid(), Alias = "mocked2", Name = "Mocked2", Value = Guid.NewGuid().ToString("n")
            };
            var entity3 = new MockedEntity {
                Id = 3, Key = 3.ToGuid(), Alias = "mocked3", Name = "Mocked3", Value = Guid.NewGuid().ToString("n")
            };

            _registry.Save(typeof(MockedEntity), entity1);
            _registry.Save(typeof(MockedEntity), entity2);
            _registry.Save(typeof(MockedEntity), entity3);

            //now clear the runtime cache internally
            ((RuntimeCacheProvider)_registry).ClearDataCache();

            Assert.AreEqual(0, _registry.GetAllByType(typeof(MockedEntity)).Count());
        }