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