Index: Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/Views/StabilityStoneCoverResultView.cs =================================================================== diff -u -r94f68f51cd9b8fd8c0c162cf874ef7e4580b0ee4 -rec463ca0f77e891e46aba80bc803690a23c1340e --- Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/Views/StabilityStoneCoverResultView.cs (.../StabilityStoneCoverResultView.cs) (revision 94f68f51cd9b8fd8c0c162cf874ef7e4580b0ee4) +++ Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/Views/StabilityStoneCoverResultView.cs (.../StabilityStoneCoverResultView.cs) (revision ec463ca0f77e891e46aba80bc803690a23c1340e) @@ -39,15 +39,27 @@ /// /// Creates a new instance of . /// + /// The failure mechanism this view belongs to. /// The collection of failure mechanism section results. - /// Thrown when - /// is null. - public StabilityStoneCoverResultView(IObservableEnumerable failureMechanismSectionResults) + /// Thrown when any input parameter is null. + public StabilityStoneCoverResultView( + StabilityStoneCoverFailureMechanism failureMechanism, + IObservableEnumerable failureMechanismSectionResults) : base(failureMechanismSectionResults) { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + FailureMechanism = failureMechanism; DataGridViewControl.CellFormatting += DisableIrrelevantFieldsFormatting; + + UpdateDataGridViewDataSource(); } + public StabilityStoneCoverFailureMechanism FailureMechanism { get; } + protected override object CreateFailureMechanismSectionResultRow(StabilityStoneCoverFailureMechanismSectionResult sectionResult) { return new StabilityStoneCoverSectionResultRow(sectionResult); Index: Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Plugin/StabilityStoneCoverPlugin.cs =================================================================== diff -u -rf603458169b1e2544bc933b05f169cc1637d59b2 -rec463ca0f77e891e46aba80bc803690a23c1340e --- Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Plugin/StabilityStoneCoverPlugin.cs (.../StabilityStoneCoverPlugin.cs) (revision f603458169b1e2544bc933b05f169cc1637d59b2) +++ Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Plugin/StabilityStoneCoverPlugin.cs (.../StabilityStoneCoverPlugin.cs) (revision ec463ca0f77e891e46aba80bc803690a23c1340e) @@ -31,7 +31,6 @@ using Core.Common.Util; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; -using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.Forms; using Ringtoets.Common.Forms.ChangeHandlers; @@ -93,8 +92,9 @@ Image = RingtoetsCommonFormsResources.FailureMechanismSectionResultIcon, CloseForData = CloseFailureMechanismResultViewForData, GetViewData = context => context.WrappedData, - AfterCreate = (view, context) => view.FailureMechanism = context.FailureMechanism, - CreateInstance = context => new StabilityStoneCoverResultView(context.WrappedData) + CreateInstance = context => new StabilityStoneCoverResultView( + (StabilityStoneCoverFailureMechanism) context.FailureMechanism, + context.WrappedData) }; } @@ -215,7 +215,6 @@ private static bool CloseFailureMechanismResultViewForData(StabilityStoneCoverResultView view, object dataToCloseFor) { - object viewData = view.Data; var assessmentSection = dataToCloseFor as IAssessmentSection; var failureMechanism = dataToCloseFor as StabilityStoneCoverFailureMechanism; var failureMechanismContext = dataToCloseFor as IFailureMechanismContext; @@ -225,15 +224,15 @@ return assessmentSection .GetFailureMechanisms() .OfType() - .Any(fm => ReferenceEquals(viewData, fm.SectionResults)); + .Any(fm => ReferenceEquals(view.FailureMechanism.SectionResults, fm.SectionResults)); } if (failureMechanismContext != null) { failureMechanism = failureMechanismContext.WrappedData; } - return failureMechanism != null && ReferenceEquals(view.Data, failureMechanism.SectionResults); + return failureMechanism != null && ReferenceEquals(view.FailureMechanism.SectionResults, failureMechanism.SectionResults); } #endregion Index: Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/Views/StabilityStoneCoverResultViewTest.cs =================================================================== diff -u -r94f68f51cd9b8fd8c0c162cf874ef7e4580b0ee4 -rec463ca0f77e891e46aba80bc803690a23c1340e --- Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/Views/StabilityStoneCoverResultViewTest.cs (.../StabilityStoneCoverResultViewTest.cs) (revision 94f68f51cd9b8fd8c0c162cf874ef7e4580b0ee4) +++ Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/Views/StabilityStoneCoverResultViewTest.cs (.../StabilityStoneCoverResultViewTest.cs) (revision ec463ca0f77e891e46aba80bc803690a23c1340e) @@ -22,7 +22,6 @@ using System; using System.Windows.Forms; using Core.Common.Base; -using Core.Common.Base.Data; using Core.Common.Base.Geometry; using Core.Common.TestUtil; using NUnit.Extensions.Forms; @@ -43,26 +42,40 @@ private const int assessmentLayerThreeIndex = 3; [Test] + public void Constructor_FailureMechanismNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => new StabilityStoneCoverResultView(null, + new ObservableList()); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("failureMechanism", exception.ParamName); + } + + [Test] public void Constructor_ExpectedValues() { // Setup - var failureMechanismSectionResults = new ObservableList(); + var failureMechanism = new StabilityStoneCoverFailureMechanism(); // Call - using (var view = new StabilityStoneCoverResultView(failureMechanismSectionResults)) + using (var view = new StabilityStoneCoverResultView(failureMechanism, failureMechanism.SectionResults)) { // Assert Assert.IsInstanceOf>(view); - Assert.AreSame(failureMechanismSectionResults, view.Data); + Assert.IsNull(view.Data); + Assert.AreSame(failureMechanism, view.FailureMechanism); } } [Test] public void GivenFormWithStabilityStoneCoverFailureMechanismResultView_WhenShown_ThenExpectedColumnsAreVisible() { // Given + var failureMechanism = new StabilityStoneCoverFailureMechanism(); using (var form = new Form()) - using (var view = new StabilityStoneCoverResultView(new ObservableList())) + using (var view = new StabilityStoneCoverResultView(failureMechanism, failureMechanism.SectionResults)) { form.Controls.Add(view); @@ -88,9 +101,9 @@ } [Test] - public void GivenFormWithStabilityStoneCoverFailureMechanismResultView_WhenDataSourceWithStabilityStoneCoverFailureMechanismSectionResultAssigned_ThenSectionsAddedAsRows() + public void StabilityStoneCoverFailureMechanismResultView_WithStabilityStoneCoverFailureMechanismSectionResultAssigned_SectionsAddedAsRows() { - // Given + // Setup var section1 = new FailureMechanismSection("Section 1", new[] { new Point2D(0, 0) @@ -109,19 +122,19 @@ { AssessmentLayerOne = AssessmentLayerOneState.Sufficient, AssessmentLayerTwoA = AssessmentLayerTwoAResult.Failed, - AssessmentLayerThree = (RoundedDouble) random.NextDouble() + AssessmentLayerThree = random.NextRoundedDouble() }; var result2 = new StabilityStoneCoverFailureMechanismSectionResult(section2) { AssessmentLayerOne = AssessmentLayerOneState.NotAssessed, AssessmentLayerTwoA = AssessmentLayerTwoAResult.Successful, - AssessmentLayerThree = (RoundedDouble) random.NextDouble() + AssessmentLayerThree = random.NextRoundedDouble() }; var result3 = new StabilityStoneCoverFailureMechanismSectionResult(section3) { AssessmentLayerOne = AssessmentLayerOneState.NoVerdict, AssessmentLayerTwoA = AssessmentLayerTwoAResult.Successful, - AssessmentLayerThree = (RoundedDouble) random.NextDouble() + AssessmentLayerThree = random.NextRoundedDouble() }; var sectionResults = new ObservableList { @@ -130,16 +143,14 @@ result3 }; + // Call using (var form = new Form()) - using (var view = new StabilityStoneCoverResultView(sectionResults)) + using (var view = new StabilityStoneCoverResultView(new StabilityStoneCoverFailureMechanism(), sectionResults)) { form.Controls.Add(view); form.Show(); - // When - view.Data = sectionResults; - - // Then + // Assert var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; DataGridViewRowCollection rows = dataGridView.Rows; @@ -193,37 +204,33 @@ { AssessmentLayerOne = assessmentLayerOneState, AssessmentLayerTwoA = AssessmentLayerTwoAResult.Failed, - AssessmentLayerThree = (RoundedDouble) random.NextDouble() + AssessmentLayerThree = random.NextRoundedDouble() }; var sectionResults = new ObservableList { result }; using (var form = new Form()) + using (var view = new StabilityStoneCoverResultView(new StabilityStoneCoverFailureMechanism(), sectionResults)) { - using (var view = new StabilityStoneCoverResultView(sectionResults)) - { - form.Controls.Add(view); - form.Show(); + form.Controls.Add(view); + form.Show(); - view.Data = sectionResults; + // When + result.AssessmentLayerOne = AssessmentLayerOneState.Sufficient; + result.NotifyObservers(); - // When - result.AssessmentLayerOne = AssessmentLayerOneState.Sufficient; - result.NotifyObservers(); + // Then + var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; + DataGridViewRowCollection rows = dataGridView.Rows; + Assert.AreEqual(1, rows.Count); - // Then - var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; - DataGridViewRowCollection rows = dataGridView.Rows; - Assert.AreEqual(1, rows.Count); + DataGridViewCellCollection cells = rows[0].Cells; + Assert.AreEqual(4, cells.Count); - DataGridViewCellCollection cells = rows[0].Cells; - Assert.AreEqual(4, cells.Count); - - DataGridViewTestHelper.AssertCellIsDisabled(cells[assessmentLayerTwoAIndex]); - DataGridViewTestHelper.AssertCellIsDisabled(cells[assessmentLayerThreeIndex]); - } + DataGridViewTestHelper.AssertCellIsDisabled(cells[assessmentLayerTwoAIndex]); + DataGridViewTestHelper.AssertCellIsDisabled(cells[assessmentLayerThreeIndex]); } } } Index: Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Plugin.Test/ViewInfos/StabilityStoneCoverResultViewInfoTest.cs =================================================================== diff -u -r09d20758dff97aed16e0d04399c803097eb1d28c -rec463ca0f77e891e46aba80bc803690a23c1340e --- Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Plugin.Test/ViewInfos/StabilityStoneCoverResultViewInfoTest.cs (.../StabilityStoneCoverResultViewInfoTest.cs) (revision 09d20758dff97aed16e0d04399c803097eb1d28c) +++ Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Plugin.Test/ViewInfos/StabilityStoneCoverResultViewInfoTest.cs (.../StabilityStoneCoverResultViewInfoTest.cs) (revision ec463ca0f77e891e46aba80bc803690a23c1340e) @@ -88,7 +88,7 @@ { // Setup var failureMechanism = new StabilityStoneCoverFailureMechanism(); - using (var view = new StabilityStoneCoverResultView(failureMechanism.SectionResults)) + using (var view = new StabilityStoneCoverResultView(failureMechanism, failureMechanism.SectionResults)) { // Call string viewName = info.GetViewName(view, failureMechanism.SectionResults); @@ -149,7 +149,7 @@ mocks.ReplayAll(); - using (var view = new StabilityStoneCoverResultView(failureMechanism.SectionResults)) + using (var view = new StabilityStoneCoverResultView(failureMechanism, failureMechanism.SectionResults)) { view.Data = failureMechanism.SectionResults; @@ -177,7 +177,7 @@ mocks.ReplayAll(); - using (var view = new StabilityStoneCoverResultView(failureMechanism.SectionResults)) + using (var view = new StabilityStoneCoverResultView(failureMechanism, failureMechanism.SectionResults)) { view.Data = failureMechanism.SectionResults; @@ -205,7 +205,7 @@ mocks.ReplayAll(); - using (var view = new StabilityStoneCoverResultView(failureMechanism.SectionResults)) + using (var view = new StabilityStoneCoverResultView(failureMechanism, failureMechanism.SectionResults)) { view.Data = failureMechanism.SectionResults; @@ -224,7 +224,7 @@ // Setup var failureMechanism = new StabilityStoneCoverFailureMechanism(); - using (var view = new StabilityStoneCoverResultView(failureMechanism.SectionResults)) + using (var view = new StabilityStoneCoverResultView(failureMechanism, failureMechanism.SectionResults)) { view.Data = failureMechanism.SectionResults; @@ -242,7 +242,7 @@ // Setup var failureMechanism = new StabilityStoneCoverFailureMechanism(); - using (var view = new StabilityStoneCoverResultView(failureMechanism.SectionResults)) + using (var view = new StabilityStoneCoverResultView(failureMechanism, failureMechanism.SectionResults)) { view.Data = failureMechanism.SectionResults; @@ -265,7 +265,7 @@ mocks.ReplayAll(); - using (var view = new StabilityStoneCoverResultView(failureMechanism.SectionResults)) + using (var view = new StabilityStoneCoverResultView(failureMechanism, failureMechanism.SectionResults)) { view.Data = failureMechanism.SectionResults; @@ -289,7 +289,7 @@ var failureMechanism = new StabilityStoneCoverFailureMechanism(); - using (var view = new StabilityStoneCoverResultView(failureMechanism.SectionResults)) + using (var view = new StabilityStoneCoverResultView(failureMechanism, failureMechanism.SectionResults)) { view.Data = failureMechanism.SectionResults; @@ -303,25 +303,6 @@ } [Test] - public void AfterCreate_Always_SetsSpecificPropertiesToView() - { - // Setup - var view = mocks.StrictMock(); - var failureMechanism = new StabilityStoneCoverFailureMechanism(); - var context = new FailureMechanismSectionResultContext(failureMechanism.SectionResults, failureMechanism); - - view.Expect(v => v.FailureMechanism = failureMechanism); - - mocks.ReplayAll(); - - // Call - info.AfterCreate(view, context); - - // Assert - mocks.VerifyAll(); - } - - [Test] public void CreateInstance_Always_ReturnsView() { // Setup