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]