예제 #1
0
        public void RuleConfigurationControllerShouldSetConfigurationForCurrentRuleToRuleConfigurationFactory()
        {
            IRule rule = Mocker.DynamicMock <IRule>();
            IRuleConfiguration         ruleConfig     = Mocker.DynamicMock <IRuleConfiguration>();
            IRuleConfigurationOverride overrideConfig = Mocker.DynamicMock <IRuleConfigurationOverride>();

            Expect.Call(_configFactory.GetRuleConfigurationFor(rule.GetType())).Return(ruleConfig).Repeat.Once();
            Expect.Call(() => _configFactory.SetRuleConfiguration(overrideConfig)).IgnoreArguments().Repeat.Once();

            Mocker.ReplayAll();

            RuleConfigurationController controller = new RuleConfigurationController(_view, _provider, _configFactory);

            _view.RuleTreeView.Raise(x => x.RuleSelectionChanged += null, this, new RuleEventArgs(rule));
            _view.Raise(x => x.Save += null, this, new RuleConfigurationChangeCommandEventArgs(new Dictionary <IRuleConfigurationParameter, object>()));

            Mocker.VerifyAll();
        }
예제 #2
0
        private void _view_Save(object sender, RuleConfigurationChangeCommandEventArgs e)
        {
            IList <IRuleConfigurationParameter> parameters = new List <IRuleConfigurationParameter>();

            foreach (KeyValuePair <IRuleConfigurationParameter, Object> aConfig in e.ValueMap)
            {
                //TODO: fix this code to a constructor-based setting
                DefaultRuleConfigurationParameter overrideParameter = new DefaultRuleConfigurationParameter();
                overrideParameter.Name          = aConfig.Key.Name;
                overrideParameter.ParameterType = aConfig.Key.ParameterType;
                overrideParameter.Value         = aConfig.Value;

                parameters.Add(overrideParameter);
            }

            IRuleConfigurationOverride overrideConfig = new DefaultRuleConfigurationOverride(CurrentConfiguration.Rule, parameters);

            _configFactory.SetRuleConfiguration(overrideConfig);
            HasChanges = false;
        }