Index: Riskeer/Common/src/Riskeer.Common.Data/FailurePath/FailurePathAssemblyResult.cs =================================================================== diff -u -r201bafea43b47457fe3c571604a492e2b1da39e6 -rb32307a144c2b5dd2d795596c3e7dd53961787db --- Riskeer/Common/src/Riskeer.Common.Data/FailurePath/FailurePathAssemblyResult.cs (.../FailurePathAssemblyResult.cs) (revision 201bafea43b47457fe3c571604a492e2b1da39e6) +++ Riskeer/Common/src/Riskeer.Common.Data/FailurePath/FailurePathAssemblyResult.cs (.../FailurePathAssemblyResult.cs) (revision b32307a144c2b5dd2d795596c3e7dd53961787db) @@ -20,6 +20,7 @@ // All rights reserved. using System; +using Core.Common.Base; using Riskeer.Common.Data.Probability; using RiskeerCommonDataResources = Riskeer.Common.Data.Properties.Resources; @@ -28,7 +29,7 @@ /// /// Class containing the assembly result of an entire failure path. /// - public class FailurePathAssemblyResult + public class FailurePathAssemblyResult : Observable { private double manualFailurePathAssemblyProbability; Index: Riskeer/Common/src/Riskeer.Common.Forms/Views/FailureMechanismResultView.cs =================================================================== diff -u -rfa2555e568efcf9d88e7141367dbcfb4983a8cae -rb32307a144c2b5dd2d795596c3e7dd53961787db --- Riskeer/Common/src/Riskeer.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision fa2555e568efcf9d88e7141367dbcfb4983a8cae) +++ Riskeer/Common/src/Riskeer.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision b32307a144c2b5dd2d795596c3e7dd53961787db) @@ -120,7 +120,9 @@ { if (IsManualAssembly()) { - FailureMechanism.AssemblyResult.ManualFailurePathAssemblyProbability = value; + FailurePathAssemblyResult assemblyResult = FailureMechanism.AssemblyResult; + assemblyResult.ManualFailurePathAssemblyProbability = value; + assemblyResult.NotifyObservers(); } failurePathAssemblyProbability = value; @@ -322,7 +324,9 @@ return; } - FailureMechanism.AssemblyResult.ProbabilityResultType = (FailurePathAssemblyProbabilityResultType) probabilityResultTypeComboBox.SelectedValue; + FailurePathAssemblyResult assemblyResult = FailureMechanism.AssemblyResult; + assemblyResult.ProbabilityResultType = (FailurePathAssemblyProbabilityResultType) probabilityResultTypeComboBox.SelectedValue; + assemblyResult.NotifyObservers(); UpdateAssemblyData(); UpdateFailurePathAssemblyControls(); Index: Riskeer/Common/test/Riskeer.Common.Data.Test/FailurePath/FailurePathAssemblyResultTest.cs =================================================================== diff -u -rf021c1bffb41b07a8f60f9d96dcf2a08f9fc03cf -rb32307a144c2b5dd2d795596c3e7dd53961787db --- Riskeer/Common/test/Riskeer.Common.Data.Test/FailurePath/FailurePathAssemblyResultTest.cs (.../FailurePathAssemblyResultTest.cs) (revision f021c1bffb41b07a8f60f9d96dcf2a08f9fc03cf) +++ Riskeer/Common/test/Riskeer.Common.Data.Test/FailurePath/FailurePathAssemblyResultTest.cs (.../FailurePathAssemblyResultTest.cs) (revision b32307a144c2b5dd2d795596c3e7dd53961787db) @@ -20,6 +20,7 @@ // All rights reserved. using System; +using Core.Common.Base; using Core.Common.TestUtil; using NUnit.Framework; using Riskeer.Common.Data.FailurePath; @@ -36,6 +37,8 @@ var result = new FailurePathAssemblyResult(); // Assert + Assert.IsInstanceOf(result); + Assert.AreEqual(FailurePathAssemblyProbabilityResultType.Automatic, result.ProbabilityResultType); Assert.IsNaN(result.ManualFailurePathAssemblyProbability); } Index: Riskeer/Common/test/Riskeer.Common.Forms.Test/Views/FailureMechanismResultViewTest.cs =================================================================== diff -u -rfa2555e568efcf9d88e7141367dbcfb4983a8cae -rb32307a144c2b5dd2d795596c3e7dd53961787db --- Riskeer/Common/test/Riskeer.Common.Forms.Test/Views/FailureMechanismResultViewTest.cs (.../FailureMechanismResultViewTest.cs) (revision fa2555e568efcf9d88e7141367dbcfb4983a8cae) +++ Riskeer/Common/test/Riskeer.Common.Forms.Test/Views/FailureMechanismResultViewTest.cs (.../FailureMechanismResultViewTest.cs) (revision b32307a144c2b5dd2d795596c3e7dd53961787db) @@ -804,7 +804,8 @@ // Given var mocks = new MockRepository(); var observer = mocks.StrictMock(); - observer.Expect(o => o.UpdateObserver()); + observer.Expect(o => o.UpdateObserver()) + .Repeat.Twice(); mocks.ReplayAll(); var failureMechanism = new TestFailureMechanism @@ -814,7 +815,7 @@ ProbabilityResultType = FailurePathAssemblyProbabilityResultType.Automatic } }; - failureMechanism.Attach(observer); + failureMechanism.AssemblyResult.Attach(observer); using (new AssemblyToolCalculatorFactoryConfig()) using (ShowFailureMechanismResultsView(failureMechanism, failureMechanism.SectionResults)) @@ -908,7 +909,8 @@ var mocks = new MockRepository(); var observer = mocks.StrictMock(); - observer.Expect(o => o.UpdateObserver()); + observer.Expect(o => o.UpdateObserver()) + .Repeat.Twice(); mocks.ReplayAll(); var failureMechanism = new TestFailureMechanism @@ -919,7 +921,7 @@ ManualFailurePathAssemblyProbability = manualProbability } }; - failureMechanism.Attach(observer); + failureMechanism.AssemblyResult.Attach(observer); using (TestFailureMechanismResultView view = ShowFailureMechanismResultsView(failureMechanism, failureMechanism.SectionResults)) { @@ -967,7 +969,6 @@ ProbabilityResultType = FailurePathAssemblyProbabilityResultType.Manual } }; - failureMechanism.Attach(observer); using (TestFailureMechanismResultView view = ShowFailureMechanismResultsView(failureMechanism, failureMechanism.SectionResults)) { @@ -980,6 +981,8 @@ string errorMessage = errorProvider.GetError(failurePathAssemblyProbabilityTextBox); Assert.IsNotEmpty(errorMessage); + failureMechanism.AssemblyResult.Attach(observer); + // When textBoxTester.Enter(validValue);