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); }
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()))); } }