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