Index: Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil.Test/TestFailureMechanismTest.cs =================================================================== diff -u -rfe90a6d174a01975381e6cda55ed1f7f4e831a51 -r7ca5ac0a391cd964f00b18ea8ab42bce5f5d46cc --- Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil.Test/TestFailureMechanismTest.cs (.../TestFailureMechanismTest.cs) (revision fe90a6d174a01975381e6cda55ed1f7f4e831a51) +++ Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil.Test/TestFailureMechanismTest.cs (.../TestFailureMechanismTest.cs) (revision 7ca5ac0a391cd964f00b18ea8ab42bce5f5d46cc) @@ -22,8 +22,10 @@ using System; using System.Collections.Generic; using System.Linq; +using Core.Common.Base; using Core.Common.Base.Geometry; using NUnit.Framework; +using Rhino.Mocks; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; @@ -79,35 +81,63 @@ } [Test] - public void AddSection_WithNullSection_ThrowsArgumentNullException() + public void AddSection_WithSection_AddedSectionResultAndNotifiesObserver() { // Setup + var mocks = new MockRepository(); + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); + var failureMechanism = new TestFailureMechanism(); + failureMechanism.SectionResults.Attach(observer); // Call - TestDelegate test = () => failureMechanism.AddSection(null); + failureMechanism.AddSection(new FailureMechanismSection(string.Empty, new[] + { + new Point2D(2, 1) + })); // Assert - string paramName = Assert.Throws(test).ParamName; - Assert.AreEqual("section", paramName); + Assert.AreEqual(1, failureMechanism.Sections.Count()); + Assert.AreEqual(1, failureMechanism.SectionResults.Count()); + Assert.IsInstanceOf(failureMechanism.SectionResults.ElementAt(0)); + mocks.VerifyAll(); } [Test] - public void AddSection_WithSection_AddsSectionAsResult() + public void ClearAllSections_WithSectionsAndSectionResults_SectionsAndSectionResultsClearedAndNotifiesObserver() { // Setup + var mocks = new MockRepository(); + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); + var failureMechanism = new TestFailureMechanism(); - var section = new FailureMechanismSection("name", new[] + + failureMechanism.AddSection(new FailureMechanismSection("", new[] { - new Point2D(0, 0) - }); + 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.AddSection(section); + failureMechanism.ClearAllSections(); // Assert - Assert.AreEqual(1, failureMechanism.SectionResults.Count()); - Assert.AreSame(section, failureMechanism.SectionResults.ElementAt(0).Section); + Assert.AreEqual(0, failureMechanism.Sections.Count()); + Assert.AreEqual(0, failureMechanism.SectionResults.Count()); + mocks.VerifyAll(); } } } \ No newline at end of file