public void MaxSelectedOptionsRuleCheck(
            ConfigurationItem configurationItem, MaxSelectedOptionsRule rule, out string error)
        {
            error = string.Empty;
            var selectedCount = configurationItem.ConfigurationItemOptions.Count(o => o.IsSelected);

            if (selectedCount > rule.Count)
            {
                error = $"{configurationItem.Name} requires at least {rule.Count} option(s)";
            }
        }
        public void MinSelectedOptionsRuleCheck(
            ConfigurationItem configurationItem, MinSelectedOptionsRule rule, out string error)
        {
            error = string.Empty;
            var selectedCount = configurationItem.ConfigurationItemOptions.Count(o => o.IsSelected);

            if (selectedCount < rule.Count)
            {
                error = $"{configurationItem.Name} can have no more than {rule.Count} option(s)";
            }
        }
        public void Min_Selected_Options_Rule_Does_Not_Return_An_Error()
        {
            var checker = new ConfigurationRulesChecker();
            var configItem = new ConfigurationItem();
            configItem.ConfigurationItemOptions.Add(new ConfigurationItemOption { Name = "Test", IsSelected = true});

            string error;
            checker.MinSelectedOptionsRuleCheck(configItem, new MinSelectedOptionsRule { Count = 1 }, out error);

            Assert.IsEmpty(error);
        }