Example #1
0
        public void ShouldReturnAllPoliciesInOrderThatApplyToTarget()
        {
            PolicySet policies = new PolicySet();
            Policy    p1       = new Policy("DALPolicy");

            p1.RuleSet.Add(new TypeMatchingAssignmentRule(typeof(MockDal)));
            Policy p2 = new Policy("LoggingPolicy");

            p2.RuleSet.Add(new TypeMatchingAssignmentRule(typeof(string)));
            Policy p3 = new Policy("ExceptionPolicy");

            p3.RuleSet.Add(new TypeMatchingAssignmentRule(typeof(MockDal)));

            policies.Add(p1);
            policies.Add(p2);
            policies.Add(p3);

            PolicySet matchingPolicies = policies.GetPoliciesFor(typeof(MockDal));

            Assert.AreEqual(2, matchingPolicies.Count);
            Assert.AreSame(p1, matchingPolicies[0]);
            Assert.AreSame(p3, matchingPolicies[1]);
        }