Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Plugin/DuneErosionPlugin.cs =================================================================== diff -u -r67af89e6b7c9dcdb24e711f92bd3b8d5c1f32c77 -rce71b2d9a32bdfdf511ebfa82d5d26d2af0fdc6b --- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Plugin/DuneErosionPlugin.cs (.../DuneErosionPlugin.cs) (revision 67af89e6b7c9dcdb24e711f92bd3b8d5c1f32c77) +++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Plugin/DuneErosionPlugin.cs (.../DuneErosionPlugin.cs) (revision ce71b2d9a32bdfdf511ebfa82d5d26d2af0fdc6b) @@ -136,7 +136,7 @@ GetViewName = (view, context) => $"{RingtoetsCommonDataResources.HydraulicBoundaryConditions_DisplayName} - {context.CategoryBoundaryName}", Image = RingtoetsCommonFormsResources.GenericInputOutputIcon, GetViewData = context => context.WrappedData, - CloseForData = CloseDuneLocationsViewForData, + CloseForData = CloseDuneLocationCalculationsViewForData, CreateInstance = context => new DuneLocationCalculationsView(context.WrappedData, context.FailureMechanism, context.AssessmentSection, @@ -403,9 +403,9 @@ #endregion - #region DuneLocationsView ViewInfo + #region DuneLocationCalculationsView ViewInfo - private static bool CloseDuneLocationsViewForData(DuneLocationCalculationsView view, object dataToCloseFor) + private static bool CloseDuneLocationCalculationsViewForData(DuneLocationCalculationsView view, object dataToCloseFor) { var failureMechanismContext = dataToCloseFor as DuneErosionFailureMechanismContext; var assessmentSection = dataToCloseFor as IAssessmentSection; Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Forms.Test/Views/DuneLocationCalculationsViewTest.cs =================================================================== diff -u -r649b0974fb71df7368d19682bc255618f44d49c1 -rce71b2d9a32bdfdf511ebfa82d5d26d2af0fdc6b --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Forms.Test/Views/DuneLocationCalculationsViewTest.cs (.../DuneLocationCalculationsViewTest.cs) (revision 649b0974fb71df7368d19682bc255618f44d49c1) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Forms.Test/Views/DuneLocationCalculationsViewTest.cs (.../DuneLocationCalculationsViewTest.cs) (revision ce71b2d9a32bdfdf511ebfa82d5d26d2af0fdc6b) @@ -174,9 +174,9 @@ mocks.ReplayAll(); // Call - using (DuneLocationCalculationsView view = ShowDuneLocationsView(new ObservableList(), - new DuneErosionFailureMechanism(), - assessmentSection)) + using (DuneLocationCalculationsView view = ShowDuneLocationCalculationsView(new ObservableList(), + new DuneErosionFailureMechanism(), + assessmentSection)) { // Assert var dataGridView = (DataGridView) view.Controls.Find("dataGridView", true)[0]; @@ -223,7 +223,7 @@ mocks.ReplayAll(); // Call - using (DuneLocationCalculationsView view = ShowFullyConfiguredDuneLocationsView(assessmentSection)) + using (DuneLocationCalculationsView view = ShowFullyConfiguredDuneLocationCalculationsView(assessmentSection)) { // Assert var dataGridView = (DataGridView) view.Controls.Find("dataGridView", true)[0]; @@ -287,7 +287,7 @@ var assessmentSection = mocks.Stub(); mocks.ReplayAll(); - using (DuneLocationCalculationsView view = ShowFullyConfiguredDuneLocationsView(assessmentSection)) + using (DuneLocationCalculationsView view = ShowFullyConfiguredDuneLocationCalculationsView(assessmentSection)) { var dataGridView = (DataGridView) view.Controls.Find("dataGridView", true)[0]; DataGridViewRow selectedLocationRow = dataGridView.Rows[0]; @@ -313,7 +313,7 @@ mocks.ReplayAll(); var calculations = new ObservableList(); - using (DuneLocationCalculationsView view = ShowDuneLocationsView(calculations, new DuneErosionFailureMechanism(), assessmentSection)) + using (DuneLocationCalculationsView view = ShowDuneLocationCalculationsView(calculations, new DuneErosionFailureMechanism(), assessmentSection)) { // Precondition var dataGridView = (DataGridView) view.Controls.Find("dataGridView", true)[0]; @@ -368,7 +368,7 @@ mocks.ReplayAll(); IObservableEnumerable calculations = GenerateDuneLocationCalculations(); - using (DuneLocationCalculationsView view = ShowDuneLocationsView(calculations, new DuneErosionFailureMechanism(), assessmentSection)) + using (DuneLocationCalculationsView view = ShowDuneLocationCalculationsView(calculations, new DuneErosionFailureMechanism(), assessmentSection)) { // Precondition var dataGridView = (DataGridView) view.Controls.Find("dataGridView", true)[0]; @@ -428,7 +428,7 @@ { Contribution = 10 }; - using (DuneLocationCalculationsView view = ShowDuneLocationsView(calculations, failureMechanism, assessmentSection)) + using (DuneLocationCalculationsView view = ShowDuneLocationCalculationsView(calculations, failureMechanism, assessmentSection)) { var dataGridView = (DataGridView) view.Controls.Find("dataGridView", true)[0]; object originalDataSource = dataGridView.DataSource; @@ -480,7 +480,7 @@ var assessmentSection = mocks.Stub(); mocks.ReplayAll(); - using (DuneLocationCalculationsView view = ShowFullyConfiguredDuneLocationsView(assessmentSection)) + using (DuneLocationCalculationsView view = ShowFullyConfiguredDuneLocationCalculationsView(assessmentSection)) { var dataGridView = (DataGridView) view.Controls.Find("dataGridView", true)[0]; DataGridViewRowCollection rows = dataGridView.Rows; @@ -509,7 +509,7 @@ var assessmentSection = mocks.Stub(); mocks.ReplayAll(); - using (DuneLocationCalculationsView view = ShowFullyConfiguredDuneLocationsView(assessmentSection)) + using (DuneLocationCalculationsView view = ShowFullyConfiguredDuneLocationCalculationsView(assessmentSection)) { // When if (rowSelected) @@ -714,20 +714,20 @@ } } - private DuneLocationCalculationsView ShowFullyConfiguredDuneLocationsView(IAssessmentSection assessmentSection) + private DuneLocationCalculationsView ShowFullyConfiguredDuneLocationCalculationsView(IAssessmentSection assessmentSection) { var failureMechanism = new DuneErosionFailureMechanism { Contribution = 10 }; - DuneLocationCalculationsView view = ShowDuneLocationsView(GenerateDuneLocationCalculations(), failureMechanism, assessmentSection); + DuneLocationCalculationsView view = ShowDuneLocationCalculationsView(GenerateDuneLocationCalculations(), failureMechanism, assessmentSection); return view; } - private DuneLocationCalculationsView ShowDuneLocationsView(IObservableEnumerable calculations, - DuneErosionFailureMechanism failureMechanism, - IAssessmentSection assessmentSection) + private DuneLocationCalculationsView ShowDuneLocationCalculationsView(IObservableEnumerable calculations, + DuneErosionFailureMechanism failureMechanism, + IAssessmentSection assessmentSection) { var view = new DuneLocationCalculationsView(calculations, failureMechanism, Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Integration.Test/DuneLocationCalculationsViewIntegrationTest.cs =================================================================== diff -u --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Integration.Test/DuneLocationCalculationsViewIntegrationTest.cs (revision 0) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Integration.Test/DuneLocationCalculationsViewIntegrationTest.cs (revision ce71b2d9a32bdfdf511ebfa82d5d26d2af0fdc6b) @@ -0,0 +1,147 @@ +// Copyright (C) Stichting Deltares 2017. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Windows.Forms; +using Core.Common.Base; +using Core.Common.Base.Geometry; +using Core.Common.Util.Reflection; +using NUnit.Extensions.Forms; +using NUnit.Framework; +using Rhino.Mocks; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Hydraulics; +using Ringtoets.DuneErosion.Data; +using Ringtoets.DuneErosion.Forms.Views; +using Ringtoets.Integration.Data; + +namespace Ringtoets.DuneErosion.Integration.Test +{ + [TestFixture] + public class DuneLocationCalculationsViewIntegrationTest + { + private const int locationCalculateColumnIndex = 0; + + private Form testForm; + private MockRepository mockRepository; + + [SetUp] + public void Setup() + { + testForm = new Form(); + mockRepository = new MockRepository(); + } + + [TearDown] + public void TearDown() + { + testForm.Dispose(); + mockRepository.VerifyAll(); + } + + [Test] + [TestCase(false, false, "De bijdrage van dit toetsspoor is nul.", TestName = "CalculateButton_ContributionChanged_SyncedAccordingly(false, false, message)")] + [TestCase(true, false, "De bijdrage van dit toetsspoor is nul.", TestName = "CalculateButton_ContributionChanged_SyncedAccordingly(true, false, message)")] + [TestCase(false, true, "Er zijn geen berekeningen geselecteerd.", TestName = "CalculateButton_ContributionChanged_SyncedAccordingly(false, true, message)")] + [TestCase(true, true, "", TestName = "CalculateButton_ContributionChanged_SyncedAccordingly(true, true, message)")] + public void GivenDuneLocationCalculationsView_WhenFailureMechanismContributionChanged_ThenButtonAndErrorMessageSyncedAccordingly(bool rowSelected, + bool contributionAfterChangeNotZero, + string expectedErrorMessage) + { + // Given + DuneLocationCalculationsView view = ShowFullyConfiguredDuneLocationCalculationsView(); + + if (rowSelected) + { + var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; + DataGridViewRowCollection rows = dataGridView.Rows; + rows[0].Cells[locationCalculateColumnIndex].Value = true; + } + + if (!contributionAfterChangeNotZero) + { + view.FailureMechanism.Contribution = 5; + view.FailureMechanism.NotifyObservers(); + } + + // Precondition + var button = (Button) view.Controls.Find("CalculateForSelectedButton", true)[0]; + Assert.AreEqual(rowSelected && !contributionAfterChangeNotZero, button.Enabled); + var errorProvider = TypeUtils.GetField(view, "CalculateForSelectedButtonErrorProvider"); + Assert.AreNotEqual(expectedErrorMessage, errorProvider.GetError(button)); + + // When + view.FailureMechanism.Contribution = contributionAfterChangeNotZero ? 5 : 0; + view.FailureMechanism.NotifyObservers(); + + // Then + Assert.AreEqual(rowSelected && contributionAfterChangeNotZero, button.Enabled); + Assert.AreEqual(expectedErrorMessage, errorProvider.GetError(button)); + } + + private DuneLocationCalculationsView ShowFullyConfiguredDuneLocationCalculationsView() + { + var calculations = new ObservableList + { + new DuneLocationCalculation(new DuneLocation(1, "1", new Point2D(1.0, 1.0), new DuneLocation.ConstructionProperties + { + CoastalAreaId = 50, + Offset = 320, + D50 = 0.000837 + })), + new DuneLocationCalculation(new DuneLocation(2, "2", new Point2D(2.0, 2.0), new DuneLocation.ConstructionProperties + { + CoastalAreaId = 60, + Offset = 230, + D50 = 0.000123 + })) + { + Output = new DuneLocationCalculationOutput(CalculationConvergence.CalculatedConverged, new DuneLocationCalculationOutput.ConstructionProperties + { + WaterLevel = 1.23, + WaveHeight = 2.34, + WavePeriod = 3.45 + }) + } + }; + + ObservableList generateDuneLocationCalculations = calculations; + DuneLocationCalculationsView view = ShowDuneLocationCalculationsView(generateDuneLocationCalculations, + new DuneErosionFailureMechanism(), + new AssessmentSection(AssessmentSectionComposition.Dike)); + return view; + } + + private DuneLocationCalculationsView ShowDuneLocationCalculationsView(IObservableEnumerable calculations, + DuneErosionFailureMechanism failureMechanism, + IAssessmentSection assessmentSection) + { + var view = new DuneLocationCalculationsView(calculations, + failureMechanism, + assessmentSection, + () => 0.01); + + testForm.Controls.Add(view); + testForm.Show(); + + return view; + } + } +} \ No newline at end of file Fisheye: Tag ce71b2d9a32bdfdf511ebfa82d5d26d2af0fdc6b refers to a dead (removed) revision in file `Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Integration.Test/DuneLocationsViewIntegrationTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Integration.Test/Ringtoets.DuneErosion.Integration.Test.csproj =================================================================== diff -u -r1226447b1a4b2e83dff18412e7f5a9cfa5b44f53 -rce71b2d9a32bdfdf511ebfa82d5d26d2af0fdc6b --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Integration.Test/Ringtoets.DuneErosion.Integration.Test.csproj (.../Ringtoets.DuneErosion.Integration.Test.csproj) (revision 1226447b1a4b2e83dff18412e7f5a9cfa5b44f53) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Integration.Test/Ringtoets.DuneErosion.Integration.Test.csproj (.../Ringtoets.DuneErosion.Integration.Test.csproj) (revision ce71b2d9a32bdfdf511ebfa82d5d26d2af0fdc6b) @@ -25,7 +25,7 @@ - +