Index: Riskeer/Piping/src/Riskeer.Piping.Data/PipingScenarioConfigurationPerFailureMechanismSection.cs =================================================================== diff -u -r3cf6af4f03c576c365448e0af315d58bf8217c7c -rd9334d0a89e1271b4288b132c3148b539f3b0d22 --- Riskeer/Piping/src/Riskeer.Piping.Data/PipingScenarioConfigurationPerFailureMechanismSection.cs (.../PipingScenarioConfigurationPerFailureMechanismSection.cs) (revision 3cf6af4f03c576c365448e0af315d58bf8217c7c) +++ Riskeer/Piping/src/Riskeer.Piping.Data/PipingScenarioConfigurationPerFailureMechanismSection.cs (.../PipingScenarioConfigurationPerFailureMechanismSection.cs) (revision d9334d0a89e1271b4288b132c3148b539f3b0d22) @@ -20,14 +20,15 @@ // All rights reserved. using System; +using Core.Common.Base; using Riskeer.Common.Data.FailureMechanism; namespace Riskeer.Piping.Data { /// /// This class holds the information of the scenario configuration of the . /// - public class PipingScenarioConfigurationPerFailureMechanismSection + public class PipingScenarioConfigurationPerFailureMechanismSection : Observable { /// /// Creates a new instance of . Index: Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingScenariosView.cs =================================================================== diff -u -r0ebf41e1681ebb69d9092762c95d7c099c66267f -rd9334d0a89e1271b4288b132c3148b539f3b0d22 --- Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingScenariosView.cs (.../PipingScenariosView.cs) (revision 0ebf41e1681ebb69d9092762c95d7c099c66267f) +++ Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingScenariosView.cs (.../PipingScenariosView.cs) (revision d9334d0a89e1271b4288b132c3148b539f3b0d22) @@ -62,6 +62,8 @@ private FailureMechanismSection selectedFailureMechanismSection; private PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationTypeForSection; + private RadioButton checkedRadioButton; + /// /// Creates a new instance of . /// @@ -99,6 +101,8 @@ InitializeCombobox(); + checkedRadioButton = radioButtonSemiProbabilistic; + InitializeListBox(); InitializeDataGridView(); @@ -325,15 +329,23 @@ private void RadioButton_OnCheckedChanged(object sender, EventArgs e) { + var newCheckedRadioButton = (RadioButton) sender; + if (checkedRadioButton == newCheckedRadioButton) + { + return; + } + if (scenarioConfigurationTypeForSection != null) { - scenarioConfigurationTypeForSection.ScenarioConfigurationType = radioButtonSemiProbabilistic.Checked + scenarioConfigurationTypeForSection.ScenarioConfigurationType = newCheckedRadioButton == radioButtonSemiProbabilistic ? PipingScenarioConfigurationPerFailureMechanismSectionType.SemiProbabilistic : PipingScenarioConfigurationPerFailureMechanismSectionType.Probabilistic; + scenarioConfigurationTypeForSection.NotifyObservers(); } UpdateVisibility(); UpdateDataGridViewDataSource(); + checkedRadioButton = newCheckedRadioButton; } } } \ No newline at end of file Index: Riskeer/Piping/test/Riskeer.Piping.Data.Test/PipingScenarioConfigurationPerFailureMechanismSectionTest.cs =================================================================== diff -u -r3cf6af4f03c576c365448e0af315d58bf8217c7c -rd9334d0a89e1271b4288b132c3148b539f3b0d22 --- Riskeer/Piping/test/Riskeer.Piping.Data.Test/PipingScenarioConfigurationPerFailureMechanismSectionTest.cs (.../PipingScenarioConfigurationPerFailureMechanismSectionTest.cs) (revision 3cf6af4f03c576c365448e0af315d58bf8217c7c) +++ Riskeer/Piping/test/Riskeer.Piping.Data.Test/PipingScenarioConfigurationPerFailureMechanismSectionTest.cs (.../PipingScenarioConfigurationPerFailureMechanismSectionTest.cs) (revision d9334d0a89e1271b4288b132c3148b539f3b0d22) @@ -20,6 +20,7 @@ // All rights reserved. using System; +using Core.Common.Base; using NUnit.Framework; using Riskeer.Common.Data.FailureMechanism; using Riskeer.Common.Data.TestUtil; @@ -50,6 +51,7 @@ var scenarioConfigurationPerFailureMechanismSection = new PipingScenarioConfigurationPerFailureMechanismSection(section); // Assert + Assert.IsInstanceOf(scenarioConfigurationPerFailureMechanismSection); Assert.AreSame(section, scenarioConfigurationPerFailureMechanismSection.Section); Assert.AreEqual(PipingScenarioConfigurationPerFailureMechanismSectionType.SemiProbabilistic, scenarioConfigurationPerFailureMechanismSection.ScenarioConfigurationType); Index: Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingScenariosViewTest.cs =================================================================== diff -u -r68546c14ce0732fa3b17b6732fa3b72f15b07b04 -rd9334d0a89e1271b4288b132c3148b539f3b0d22 --- Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingScenariosViewTest.cs (.../PipingScenariosViewTest.cs) (revision 68546c14ce0732fa3b17b6732fa3b72f15b07b04) +++ Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingScenariosViewTest.cs (.../PipingScenariosViewTest.cs) (revision d9334d0a89e1271b4288b132c3148b539f3b0d22) @@ -405,26 +405,35 @@ } [Test] - public void GivenPipingScenarioViewWithSections_WhenSelectingRadioButton_ThenDataGridViewUpdated() + public void GivenPipingScenarioViewWithSections_WhenSelectingRadioButton_ThenDataSetAndNotified() { // Given + var mocks = new MockRepository(); + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); + var failureMechanism = new PipingFailureMechanism { ScenarioConfigurationType = PipingScenarioConfigurationType.PerFailureMechanismSection }; ShowFullyConfiguredPipingScenariosView(failureMechanism); + PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationPerFailureMechanismSection = failureMechanism.ScenarioConfigurationsPerFailureMechanismSection.First(); + scenarioConfigurationPerFailureMechanismSection.Attach(observer); + // Precondition Assert.AreEqual(PipingScenarioConfigurationPerFailureMechanismSectionType.SemiProbabilistic, - failureMechanism.ScenarioConfigurationsPerFailureMechanismSection.First().ScenarioConfigurationType); + scenarioConfigurationPerFailureMechanismSection.ScenarioConfigurationType); // When var radioButtonProbabilistic = (RadioButton) new RadioButtonTester("radioButtonProbabilistic").TheObject; radioButtonProbabilistic.Checked = true; // Then Assert.AreEqual(PipingScenarioConfigurationPerFailureMechanismSectionType.Probabilistic, - failureMechanism.ScenarioConfigurationsPerFailureMechanismSection.First().ScenarioConfigurationType); + scenarioConfigurationPerFailureMechanismSection.ScenarioConfigurationType); + mocks.VerifyAll(); } [Test]