Index: Riskeer/Common/src/Riskeer.Common.Forms/Observers/CalculatableFailureMechanismResultObserver.cs =================================================================== diff -u -r8658d36cc32a7af5ea898721e85abe5985b52fb1 -rabbb37e4aa1bceb60013db9d40a25afbf8d61595 --- Riskeer/Common/src/Riskeer.Common.Forms/Observers/CalculatableFailureMechanismResultObserver.cs (.../CalculatableFailureMechanismResultObserver.cs) (revision 8658d36cc32a7af5ea898721e85abe5985b52fb1) +++ Riskeer/Common/src/Riskeer.Common.Forms/Observers/CalculatableFailureMechanismResultObserver.cs (.../CalculatableFailureMechanismResultObserver.cs) (revision abbb37e4aa1bceb60013db9d40a25afbf8d61595) @@ -28,7 +28,7 @@ { /// /// Class that observes all objects in an - /// related to its section results. + /// related to its assembly results. /// /// The type of the failure mechanism to listen to. /// The type of the failure mechanism section results in the . Index: Riskeer/Common/src/Riskeer.Common.Forms/Observers/FailureMechanismResultObserver.cs =================================================================== diff -u -r8658d36cc32a7af5ea898721e85abe5985b52fb1 -rabbb37e4aa1bceb60013db9d40a25afbf8d61595 --- Riskeer/Common/src/Riskeer.Common.Forms/Observers/FailureMechanismResultObserver.cs (.../FailureMechanismResultObserver.cs) (revision 8658d36cc32a7af5ea898721e85abe5985b52fb1) +++ Riskeer/Common/src/Riskeer.Common.Forms/Observers/FailureMechanismResultObserver.cs (.../FailureMechanismResultObserver.cs) (revision abbb37e4aa1bceb60013db9d40a25afbf8d61595) @@ -27,7 +27,7 @@ { /// /// Class that observes all objects in an related to - /// its section results. + /// its assembly results. /// /// The type of the failure mechanism to observe. /// The type of the section results in the failure mechanism. @@ -36,6 +36,7 @@ where TSectionResult : FailureMechanismSectionResult { private readonly Observer failureMechanismObserver; + private readonly Observer failureMechanismAssemblyResultObserver; private readonly RecursiveObserver, TSectionResult> failureMechanismSectionResultsObserver; /// @@ -55,6 +56,11 @@ Observable = failureMechanism }; + failureMechanismAssemblyResultObserver = new Observer(NotifyObservers) + { + Observable = failureMechanism.AssemblyResult + }; + failureMechanismSectionResultsObserver = new RecursiveObserver, TSectionResult>( NotifyObservers, sr => sr) @@ -74,6 +80,7 @@ if (disposing) { failureMechanismObserver.Dispose(); + failureMechanismAssemblyResultObserver.Dispose(); failureMechanismSectionResultsObserver.Dispose(); } } Index: Riskeer/Common/test/Riskeer.Common.Forms.Test/Observers/FailureMechanismResultObserverTest.cs =================================================================== diff -u -r8658d36cc32a7af5ea898721e85abe5985b52fb1 -rabbb37e4aa1bceb60013db9d40a25afbf8d61595 --- Riskeer/Common/test/Riskeer.Common.Forms.Test/Observers/FailureMechanismResultObserverTest.cs (.../FailureMechanismResultObserverTest.cs) (revision 8658d36cc32a7af5ea898721e85abe5985b52fb1) +++ Riskeer/Common/test/Riskeer.Common.Forms.Test/Observers/FailureMechanismResultObserverTest.cs (.../FailureMechanismResultObserverTest.cs) (revision abbb37e4aa1bceb60013db9d40a25afbf8d61595) @@ -105,5 +105,28 @@ mocks.VerifyAll(); } } + + [Test] + public void GivenFailureMechanismResultObserverWithAttachedObserver_WhenFailureMechanismAssemblyResultNotifiesObservers_ThenAttachedObserverNotified() + { + // Given + var failureMechanism = new TestFailureMechanism(); + + using (var resultObserver = new FailureMechanismResultObserver(failureMechanism)) + { + var mocks = new MockRepository(); + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); + + resultObserver.Attach(observer); + + // When + failureMechanism.AssemblyResult.NotifyObservers(); + + // Then + mocks.VerifyAll(); + } + } } } \ No newline at end of file