public void EmptySetsSame()
        {
            var prov = new DummyRuleSetProvider();

            prov.Add(1, Permissions.Read, new UserRuleSet(new List <long>()));
            prov.Add(2, Permissions.Read, new UserRuleSet(new List <long>()));

            var hasher = new UserRuleSetsHasher(prov);

            Assert.That(hasher.GetUserRuleSetsHash(1), Is.EqualTo(hasher.GetUserRuleSetsHash(2)));
        }
        /// <summary>
        /// Constructor.
        /// </summary>
        public PerUserRuleSetCache(ICache <Tuple <int, TKey>, TValue> innerCache, IUserRuleSetProvider ruleSetProvider)
        {
            if (ruleSetProvider == null)
            {
                throw new ArgumentException("ruleSetProvider");
            }

            _ruleSetProvider     = ruleSetProvider;
            _rulesSetsHasher     = new UserRuleSetsHasher(ruleSetProvider);
            _cache               = innerCache;
            _cache.ItemsRemoved += CacheOnItemsRemoved;
        }
        public void ReadAndWriteSetsDifferent()
        {
            var rs = new UserRuleSet(new List <long> {
                100, 101
            });
            var prov = new DummyRuleSetProvider();

            prov.Add(1, Permissions.Read, rs);
            prov.Add(2, Permissions.Modify, rs);

            var hasher = new UserRuleSetsHasher(prov);

            Assert.That(hasher.GetUserRuleSetsHash(1), Is.Not.EqualTo(hasher.GetUserRuleSetsHash(2)));
        }