Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/Views/StabilityPointStructuresFailureMechanismResultView.cs =================================================================== diff -u -rb6d6acf62adcb4b23c4c5f6724fbd0091585bbb3 -r68ec2e96b004450e3b884fac10d1e7f6d7f18935 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/Views/StabilityPointStructuresFailureMechanismResultView.cs (.../StabilityPointStructuresFailureMechanismResultView.cs) (revision b6d6acf62adcb4b23c4c5f6724fbd0091585bbb3) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/Views/StabilityPointStructuresFailureMechanismResultView.cs (.../StabilityPointStructuresFailureMechanismResultView.cs) (revision 68ec2e96b004450e3b884fac10d1e7f6d7f18935) @@ -19,9 +19,11 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using System.Linq; using System.Windows.Forms; using Core.Common.Base; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.Structures; @@ -38,15 +40,25 @@ public class StabilityPointStructuresFailureMechanismResultView : FailureMechanismResultView { private const int assessmentLayerTwoAIndex = 2; + private readonly IAssessmentSection assessmentSection; private readonly RecursiveObserver calculationInputObserver; private readonly RecursiveObserver calculationOutputObserver; private readonly RecursiveObserver calculationGroupObserver; /// /// Creates a new instance of . /// - public StabilityPointStructuresFailureMechanismResultView() + /// The assessment section the failure mechanism result belongs to. + /// Thrown when + /// is null. + public StabilityPointStructuresFailureMechanismResultView(IAssessmentSection assessmentSection) { + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + this.assessmentSection = assessmentSection; DataGridViewControl.CellFormatting += ShowAssessmentLayerErrors; DataGridViewControl.CellFormatting += DisableIrrelevantFieldsFormatting; Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs =================================================================== diff -u -rfb1234bf64085a67f7b277ca86d39f80e15ff644 -r68ec2e96b004450e3b884fac10d1e7f6d7f18935 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs (.../StabilityPointStructuresPlugin.cs) (revision fb1234bf64085a67f7b277ca86d39f80e15ff644) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs (.../StabilityPointStructuresPlugin.cs) (revision 68ec2e96b004450e3b884fac10d1e7f6d7f18935) @@ -110,7 +110,8 @@ Image = RingtoetsCommonFormsResources.FailureMechanismSectionResultIcon, CloseForData = CloseFailureMechanismResultViewForData, GetViewData = context => context.WrappedData, - AfterCreate = (view, context) => view.FailureMechanism = context.FailureMechanism + AfterCreate = (view, context) => view.FailureMechanism = context.FailureMechanism, + CreateInstance = context => new StabilityPointStructuresFailureMechanismResultView(context.AssessmentSection) }; yield return new ViewInfo Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/Views/StabilityPointStructuresFailureMechanismResultViewTest.cs =================================================================== diff -u -r5ca67bdbaab0f6a9fb7682c06140b93bb0f5b5bb -r68ec2e96b004450e3b884fac10d1e7f6d7f18935 --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/Views/StabilityPointStructuresFailureMechanismResultViewTest.cs (.../StabilityPointStructuresFailureMechanismResultViewTest.cs) (revision 5ca67bdbaab0f6a9fb7682c06140b93bb0f5b5bb) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/Views/StabilityPointStructuresFailureMechanismResultViewTest.cs (.../StabilityPointStructuresFailureMechanismResultViewTest.cs) (revision 68ec2e96b004450e3b884fac10d1e7f6d7f18935) @@ -30,6 +30,8 @@ using Core.Common.TestUtil; using NUnit.Extensions.Forms; using NUnit.Framework; +using Rhino.Mocks; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.Structures; using Ringtoets.Common.Data.TestUtil; @@ -63,15 +65,22 @@ } [Test] - public void DefaultConstructor_DefaultValues() + public void Constructor_ExpectedValues() { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + // Call - using (var view = new StabilityPointStructuresFailureMechanismResultView()) + using (var view = new StabilityPointStructuresFailureMechanismResultView(assessmentSection)) { // Assert Assert.IsInstanceOf>(view); Assert.IsNull(view.Data); } + + mocks.VerifyAll(); } [Test] @@ -726,7 +735,7 @@ private StabilityPointStructuresFailureMechanismResultView ShowFailureMechanismResultsView() { - var failureMechanismResultView = new StabilityPointStructuresFailureMechanismResultView(); + var failureMechanismResultView = new StabilityPointStructuresFailureMechanismResultView(new ObservableTestAssessmentSectionStub()); testForm.Controls.Add(failureMechanismResultView); testForm.Show(); Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/ViewInfos/StabilityPointStructuresResultViewInfoTest.cs =================================================================== diff -u -rfb1234bf64085a67f7b277ca86d39f80e15ff644 -r68ec2e96b004450e3b884fac10d1e7f6d7f18935 --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/ViewInfos/StabilityPointStructuresResultViewInfoTest.cs (.../StabilityPointStructuresResultViewInfoTest.cs) (revision fb1234bf64085a67f7b277ca86d39f80e15ff644) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/ViewInfos/StabilityPointStructuresResultViewInfoTest.cs (.../StabilityPointStructuresResultViewInfoTest.cs) (revision 68ec2e96b004450e3b884fac10d1e7f6d7f18935) @@ -22,6 +22,7 @@ using System.Collections.Generic; using System.Drawing; using System.Linq; +using Core.Common.Controls.Views; using Core.Common.Gui.Plugin; using Core.Common.TestUtil; using NUnit.Framework; @@ -88,14 +89,19 @@ public void GetViewName_Always_ReturnsViewName() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + var failureMechanism = new StabilityPointStructuresFailureMechanism(); - var constructionResultView = new StabilityPointStructuresFailureMechanismResultView(); + var constructionResultView = new StabilityPointStructuresFailureMechanismResultView(assessmentSection); // Call string viewName = info.GetViewName(constructionResultView, failureMechanism.SectionResults); // Assert Assert.AreEqual("Resultaat", viewName); + mocks.VerifyAll(); } [Test] @@ -117,7 +123,7 @@ assessmentSection.Stub(asm => asm.GetFailureMechanisms()).Return(new IFailureMechanism[0]); mocks.ReplayAll(); - using (var view = new StabilityPointStructuresFailureMechanismResultView()) + using (var view = new StabilityPointStructuresFailureMechanismResultView(assessmentSection)) { var failureMechanism = new StabilityPointStructuresFailureMechanism(); view.Data = failureMechanism.SectionResults; @@ -147,7 +153,7 @@ }); mocks.ReplayAll(); - using (var view = new StabilityPointStructuresFailureMechanismResultView()) + using (var view = new StabilityPointStructuresFailureMechanismResultView(assessmentSection)) { view.Data = failureMechanism.SectionResults; @@ -176,7 +182,7 @@ }); mocks.ReplayAll(); - using (var view = new StabilityPointStructuresFailureMechanismResultView()) + using (var view = new StabilityPointStructuresFailureMechanismResultView(assessmentSection)) { view.Data = failureMechanism.SectionResults; @@ -194,7 +200,11 @@ public void CloseForData_ViewCorrespondingToRemovedFailureMechanism_ReturnsTrue() { // Setup - using (var view = new StabilityPointStructuresFailureMechanismResultView()) + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + using (var view = new StabilityPointStructuresFailureMechanismResultView(assessmentSection)) { var failureMechanism = new StabilityPointStructuresFailureMechanism(); view.Data = failureMechanism.SectionResults; @@ -205,13 +215,19 @@ // Assert Assert.IsTrue(closeForData); } + + mocks.VerifyAll(); } [Test] public void CloseForData_ViewNotCorrespondingToRemovedFailureMechanismContext_ReturnsFalse() { // Setup - using (var view = new StabilityPointStructuresFailureMechanismResultView()) + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + using (var view = new StabilityPointStructuresFailureMechanismResultView(assessmentSection)) { var failureMechanism = new StabilityPointStructuresFailureMechanism(); view.Data = failureMechanism.SectionResults; @@ -222,6 +238,8 @@ // Assert Assert.IsFalse(closeForData); } + + mocks.VerifyAll(); } [Test] @@ -235,7 +253,7 @@ var failureMechanism = new StabilityPointStructuresFailureMechanism(); var failureMechanismContext = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSection); - using (var view = new StabilityPointStructuresFailureMechanismResultView()) + using (var view = new StabilityPointStructuresFailureMechanismResultView(assessmentSection)) { view.Data = failureMechanism.SectionResults; @@ -261,7 +279,7 @@ var failureMechanismContext = new StabilityPointStructuresFailureMechanismContext(new StabilityPointStructuresFailureMechanism(), assessmentSection); - using (var view = new StabilityPointStructuresFailureMechanismResultView()) + using (var view = new StabilityPointStructuresFailureMechanismResultView(assessmentSection)) { view.Data = failureMechanism.SectionResults; @@ -296,5 +314,27 @@ // Assert mocks.VerifyAll(); } + + [Test] + public void CreateInstance_Always_ReturnsView() + { + // Setup + var failureMechanism = new StabilityPointStructuresFailureMechanism(); + + var mocks = new MockRepository(); + IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); + + var context = new ProbabilityFailureMechanismSectionResultContext( + failureMechanism.SectionResults, + failureMechanism, + assessmentSection); + + // Call + IView view = info.CreateInstance(context); + + // Assert + Assert.IsInstanceOf(view); + mocks.VerifyAll(); + } } } \ No newline at end of file