コード例 #1
0
        public void ReturnsExpectedRuleSetForRuleSetTypeEnum(RuleSetType ruleSetType, Type expectedType)
        {
            _ruleSetsProvider.GetRuleSets().Returns(new Dictionary <RuleSetType, IRuleSet>()
            {
                { RuleSetType.Default, new DefaultRuleSet() },
                { RuleSetType.Relaxed, new RelaxedRuleSet() }
            });

            var ruleSetFactory = new RuleSetFactory(_ruleSetsProvider);

            var ruleSet = ruleSetFactory.GetRuleSet(ruleSetType);

            ruleSet.ShouldBeOfType(expectedType);
        }
コード例 #2
0
        public RuleSetFactory(IRuleSetsProvider ruleSetsProvider)
        {
            _ruleSets = ruleSetsProvider.GetRuleSets();

            var ruleSetTypes = Enum.GetValues(typeof(RuleSetType)).Cast <RuleSetType>();

            var registeredRuleSets = _ruleSets.Keys.ToList();

            var dif = ruleSetTypes.Except(registeredRuleSets).ToList();

            if (dif.Any())
            {
                throw new ArgumentException("Ruleset type(s) without ruleset implementations: " + string.Join(",", dif.Select(t => t.ToString())));
            }
        }