예제 #1
0
        public void Test_InvalidateEntries_AccessRule()
        {
            AccessRule accessRule;
            Subject    subject;
            ICache <SubjectPermissionTypesTuple, IEnumerable <AccessRuleQuery> > dictionaryCache;
            SecurityQueryCacheInvalidator securityQueryCacheInvalidator;

            subject = new Subject();
            subject.Save();

            accessRule = new AccessRule();
            accessRule.AllowAccessBy = subject;
            accessRule.Save();

            dictionaryCache = new DictionaryCache <SubjectPermissionTypesTuple, IEnumerable <AccessRuleQuery> >
            {
                { new SubjectPermissionTypesTuple(subject.Id, 2, new long[0]), new AccessRuleQuery[0] },
                { new SubjectPermissionTypesTuple(subject.Id, 3, new long[0]), new AccessRuleQuery[0] },
                { new SubjectPermissionTypesTuple(subject.Id + 1, 3, new long[0]), new AccessRuleQuery[0] },
                { new SubjectPermissionTypesTuple(subject.Id + 2, 3, new long[0]), new AccessRuleQuery[0] }
            };

            securityQueryCacheInvalidator = new SecurityQueryCacheInvalidator(dictionaryCache);
            securityQueryCacheInvalidator.InvalidateCacheEntries(new []
            {
                new SubjectPermissionTypesTuple(subject.Id, 2, new long[0]),
                new SubjectPermissionTypesTuple(subject.Id, 3, new long[0]),
            }, () => "test");

            Assert.That(dictionaryCache, Has.None.Property("Key").Property("SubjectId").EqualTo(subject.Id));
        }
예제 #2
0
        public void Test_Ctor()
        {
            ICache <SubjectPermissionTypesTuple, IEnumerable <AccessRuleQuery> > cache;
            SecurityQueryCacheInvalidator securityQueryCacheInvalidator;

            cache = new DictionaryCache <SubjectPermissionTypesTuple, IEnumerable <AccessRuleQuery> >( );
            securityQueryCacheInvalidator = new SecurityQueryCacheInvalidator(cache);

            Assert.That(securityQueryCacheInvalidator, Has.Property("Cache").EqualTo(cache));
        }