Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/MicrostabilityFailureMechanism.cs =================================================================== diff -u -r421cbbc8a7149960b5e6908bde1744c63e4d1169 -r29acf1af7ae26a676006ef5ba182f3ba71b80a8d --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/MicrostabilityFailureMechanism.cs (.../MicrostabilityFailureMechanism.cs) (revision 421cbbc8a7149960b5e6908bde1744c63e4d1169) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/MicrostabilityFailureMechanism.cs (.../MicrostabilityFailureMechanism.cs) (revision 29acf1af7ae26a676006ef5ba182f3ba71b80a8d) @@ -65,12 +65,14 @@ { base.AddSection(section); sectionResults.Add(new MicrostabilityFailureMechanismSectionResult(section)); + sectionResults.NotifyObservers(); } public override void ClearAllSections() { base.ClearAllSections(); sectionResults.Clear(); + sectionResults.NotifyObservers(); } } } \ No newline at end of file Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/MicrostabilityFailureMechanismTest.cs =================================================================== diff -u -r802ea30d1fe8fbae93e58dff9ab054dbabca11ae -r29acf1af7ae26a676006ef5ba182f3ba71b80a8d --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/MicrostabilityFailureMechanismTest.cs (.../MicrostabilityFailureMechanismTest.cs) (revision 802ea30d1fe8fbae93e58dff9ab054dbabca11ae) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/MicrostabilityFailureMechanismTest.cs (.../MicrostabilityFailureMechanismTest.cs) (revision 29acf1af7ae26a676006ef5ba182f3ba71b80a8d) @@ -20,8 +20,10 @@ // All rights reserved. using System.Linq; +using Core.Common.Base; using Core.Common.Base.Geometry; using NUnit.Framework; +using Rhino.Mocks; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.StandAlone; using Ringtoets.Integration.Data.StandAlone.SectionResults; @@ -45,20 +47,63 @@ } [Test] - public void AddSection_WithSection_AddedMicrostabilityFailureMechanismSectionResult() + public void AddSection_WithSection_AddedSectionResultAndNotifiesObserver() { // Setup + var mocks = new MockRepository(); + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); + var failureMechanism = new MicrostabilityFailureMechanism(); + failureMechanism.SectionResults.Attach(observer); // Call - failureMechanism.AddSection(new FailureMechanismSection("", new[] + failureMechanism.AddSection(new FailureMechanismSection(string.Empty, new[] { new Point2D(2, 1) })); // Assert + Assert.AreEqual(1, failureMechanism.Sections.Count()); Assert.AreEqual(1, failureMechanism.SectionResults.Count()); Assert.IsInstanceOf(failureMechanism.SectionResults.ElementAt(0)); + mocks.VerifyAll(); } + + [Test] + public void ClearAllSections_WithSectionsAndSectionResults_SectionsAndSectionResultsClearedAndNotifiesObserver() + { + // Setup + var mocks = new MockRepository(); + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); + + var failureMechanism = new MicrostabilityFailureMechanism(); + + failureMechanism.AddSection(new FailureMechanismSection("", new[] + { + new Point2D(2, 1) + })); + failureMechanism.AddSection(new FailureMechanismSection("", new[] + { + new Point2D(2, 1) + })); + + failureMechanism.SectionResults.Attach(observer); + + // Precondition + Assert.AreEqual(2, failureMechanism.Sections.Count()); + Assert.AreEqual(2, failureMechanism.SectionResults.Count()); + + // Call + failureMechanism.ClearAllSections(); + + // Assert + Assert.AreEqual(0, failureMechanism.Sections.Count()); + Assert.AreEqual(0, failureMechanism.SectionResults.Count()); + mocks.ReplayAll(); + } } } \ No newline at end of file