Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Forms.Test/Views/DuneLocationCalculationsViewTest.cs =================================================================== diff -u -rd8797935f3a74fefe5db9d0c98e330a6461954a9 -r66d32f2cd2dc282c88698ea28b0c316de2cddffe --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Forms.Test/Views/DuneLocationCalculationsViewTest.cs (.../DuneLocationCalculationsViewTest.cs) (revision d8797935f3a74fefe5db9d0c98e330a6461954a9) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Forms.Test/Views/DuneLocationCalculationsViewTest.cs (.../DuneLocationCalculationsViewTest.cs) (revision 66d32f2cd2dc282c88698ea28b0c316de2cddffe) @@ -29,6 +29,7 @@ using Core.Common.Base.Geometry; using Core.Common.TestUtil; using Core.Common.Util; +using Core.Common.Util.Extensions; using Core.Common.Util.Reflection; using NUnit.Extensions.Forms; using NUnit.Framework; @@ -84,7 +85,8 @@ // Call TestDelegate call = () => new DuneLocationCalculationsView(null, new DuneErosionFailureMechanism(), - assessmentSection); + assessmentSection, + () => 0.01); // Assert var exception = Assert.Throws(call); @@ -101,7 +103,8 @@ // Call TestDelegate call = () => new DuneLocationCalculationsView(new ObservableList(), null, - assessmentSection); + assessmentSection, + () => 0.01); // Assert var exception = Assert.Throws(call); @@ -114,14 +117,33 @@ // Call TestDelegate call = () => new DuneLocationCalculationsView(new ObservableList(), new DuneErosionFailureMechanism(), - null); + null, + () => 0.01); // Assert var exception = Assert.Throws(call); Assert.AreEqual("assessmentSection", exception.ParamName); } [Test] + public void Constructor_GetNormFuncNull_ThrowsArgumentNullException() + { + // Setup + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + // Call + TestDelegate call = () => new DuneLocationCalculationsView(new ObservableList(), + new DuneErosionFailureMechanism(), + assessmentSection, + null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("getNormFunc", exception.ParamName); + } + + [Test] public void Constructor_ExpectedValues() { // Setup @@ -133,7 +155,8 @@ // Call using (var view = new DuneLocationCalculationsView(new ObservableList(), failureMechanism, - assessmentSection)) + assessmentSection, + () => 0.01)) { // Assert Assert.IsInstanceOf(view); @@ -249,7 +272,8 @@ // Call using (var view = new DuneLocationCalculationsView(new ObservableList(), new DuneErosionFailureMechanism(), - assessmentSection)) + assessmentSection, + () => 0.01)) { // Assert Assert.IsNull(view.Selection); @@ -343,7 +367,7 @@ var assessmentSection = mocks.Stub(); mocks.ReplayAll(); - ObservableList calculations = GenerateDuneLocationCalculations(); + IObservableEnumerable calculations = GenerateDuneLocationCalculations(); using (DuneLocationCalculationsView view = ShowDuneLocationsView(calculations, new DuneErosionFailureMechanism(), assessmentSection)) { // Precondition @@ -361,7 +385,7 @@ Assert.AreEqual(3.45.ToString(CultureInfo.CurrentCulture), secondRow.Cells[wavePeriodColumnIndex].FormattedValue); // When - calculations.ForEach(calculation => + calculations.ForEachElementDo(calculation => { calculation.Output = null; calculation.NotifyObservers(); @@ -399,7 +423,7 @@ .Return(new TestDunesBoundaryConditionsCalculator()); mocks.ReplayAll(); - ObservableList calculations = GenerateDuneLocationCalculations(); + IObservableEnumerable calculations = GenerateDuneLocationCalculations(); var failureMechanism = new DuneErosionFailureMechanism { Contribution = 10 @@ -478,8 +502,8 @@ [TestCase(false, false, "Er zijn geen berekeningen geselecteerd.", TestName = "CalculateButton_RowSelectionContributionSet_SyncedAccordingly(false, true, message)")] [TestCase(true, false, "", TestName = "CalculateButton_RowSelectionContributionSet_SyncedAccordingly(true, true, message)")] public void GivenDuneLocationCalculationsView_WhenSpecificCombinationOfRowSelectionAndFailureMechanismContributionSet_ThenButtonAndErrorMessageSyncedAccordingly(bool rowSelected, - bool contributionZero, - string expectedErrorMessage) + bool contributionZero, + string expectedErrorMessage) { // Given var assessmentSection = mocks.Stub(); @@ -513,6 +537,8 @@ public void CalculateForSelectedButton_HydraulicBoundaryDatabaseWithCanUsePreprocessorFalse_CreateDunesBoundaryConditionsCalculatorCalledAsExpected() { // Setup + const double norm = 0.1; + var assessmentSection = mocks.Stub(); assessmentSection.Stub(a => a.Id).Return("1"); assessmentSection.Stub(a => a.FailureMechanismContribution).Return(FailureMechanismContributionTestFactory.CreateFailureMechanismContribution()); @@ -529,8 +555,19 @@ .Return(dunesBoundaryConditionsCalculator); mocks.ReplayAll(); - using (DuneLocationCalculationsView view = ShowFullyConfiguredDuneLocationsView(assessmentSection)) + var failureMechanism = new DuneErosionFailureMechanism { + Contribution = 10 + }; + + using (var view = new DuneLocationCalculationsView(GenerateDuneLocationCalculations(), + failureMechanism, + assessmentSection, + () => norm)) + { + testForm.Controls.Add(view); + testForm.Show(); + var dataGridView = (DataGridView) view.Controls.Find("dataGridView", true)[0]; DataGridViewRowCollection rows = dataGridView.Rows; rows[0].Cells[locationCalculateColumnIndex].Value = true; @@ -549,8 +586,7 @@ DunesBoundaryConditionsCalculationInput dunesBoundaryConditionsCalculationInput = dunesBoundaryConditionsCalculator.ReceivedInputs.First(); Assert.AreEqual(1, dunesBoundaryConditionsCalculationInput.HydraulicBoundaryLocationId); - double expectedProbability = view.FailureMechanism.GetMechanismSpecificNorm(assessmentSection.FailureMechanismContribution.Norm); - Assert.AreEqual(StatisticsConverter.ProbabilityToReliability(expectedProbability), dunesBoundaryConditionsCalculationInput.Beta); + Assert.AreEqual(StatisticsConverter.ProbabilityToReliability(norm), dunesBoundaryConditionsCalculationInput.Beta); } } } @@ -559,6 +595,8 @@ public void CalculateForSelectedButton_HydraulicBoundaryDatabaseWithUsePreprocessorTrue_CreateDunesBoundaryConditionsCalculatorCalledAsExpected() { // Setup + const double norm = 0.1; + var assessmentSection = mocks.Stub(); assessmentSection.Stub(a => a.Id).Return("1"); assessmentSection.Stub(a => a.FailureMechanismContribution).Return(FailureMechanismContributionTestFactory.CreateFailureMechanismContribution()); @@ -578,8 +616,19 @@ .Return(dunesBoundaryConditionsCalculator); mocks.ReplayAll(); - using (DuneLocationCalculationsView view = ShowFullyConfiguredDuneLocationsView(assessmentSection)) + var failureMechanism = new DuneErosionFailureMechanism { + Contribution = 10 + }; + + using (var view = new DuneLocationCalculationsView(GenerateDuneLocationCalculations(), + failureMechanism, + assessmentSection, + () => norm)) + { + testForm.Controls.Add(view); + testForm.Show(); + var dataGridView = (DataGridView) view.Controls.Find("dataGridView", true)[0]; DataGridViewRowCollection rows = dataGridView.Rows; rows[0].Cells[locationCalculateColumnIndex].Value = true; @@ -598,8 +647,7 @@ DunesBoundaryConditionsCalculationInput dunesBoundaryConditionsCalculationInput = dunesBoundaryConditionsCalculator.ReceivedInputs.First(); Assert.AreEqual(1, dunesBoundaryConditionsCalculationInput.HydraulicBoundaryLocationId); - double expectedProbability = view.FailureMechanism.GetMechanismSpecificNorm(assessmentSection.FailureMechanismContribution.Norm); - Assert.AreEqual(StatisticsConverter.ProbabilityToReliability(expectedProbability), dunesBoundaryConditionsCalculationInput.Beta); + Assert.AreEqual(StatisticsConverter.ProbabilityToReliability(norm), dunesBoundaryConditionsCalculationInput.Beta); } } } @@ -608,6 +656,8 @@ public void CalculateForSelectedButton_HydraulicBoundaryDatabaseWithUsePreprocessorFalse_CreateDunesBoundaryConditionsCalculatorCalledAsExpected() { // Setup + const double norm = 0.1; + var assessmentSection = mocks.Stub(); assessmentSection.Stub(a => a.Id).Return("1"); assessmentSection.Stub(a => a.FailureMechanismContribution) @@ -629,8 +679,18 @@ .Return(dunesBoundaryConditionsCalculator); mocks.ReplayAll(); - using (DuneLocationCalculationsView view = ShowFullyConfiguredDuneLocationsView(assessmentSection)) + var failureMechanism = new DuneErosionFailureMechanism { + Contribution = 10 + }; + + using (var view = new DuneLocationCalculationsView(GenerateDuneLocationCalculations(), + failureMechanism, + assessmentSection, + () => norm)) + { + testForm.Controls.Add(view); + testForm.Show(); var dataGridView = (DataGridView) view.Controls.Find("dataGridView", true)[0]; DataGridViewRowCollection rows = dataGridView.Rows; rows[0].Cells[locationCalculateColumnIndex].Value = true; @@ -649,8 +709,7 @@ DunesBoundaryConditionsCalculationInput dunesBoundaryConditionsCalculationInput = dunesBoundaryConditionsCalculator.ReceivedInputs.First(); Assert.AreEqual(1, dunesBoundaryConditionsCalculationInput.HydraulicBoundaryLocationId); - double expectedProbability = view.FailureMechanism.GetMechanismSpecificNorm(assessmentSection.FailureMechanismContribution.Norm); - Assert.AreEqual(StatisticsConverter.ProbabilityToReliability(expectedProbability), dunesBoundaryConditionsCalculationInput.Beta); + Assert.AreEqual(StatisticsConverter.ProbabilityToReliability(norm), dunesBoundaryConditionsCalculationInput.Beta); } } } @@ -672,17 +731,18 @@ { var view = new DuneLocationCalculationsView(calculations, failureMechanism, - assessmentSection); + assessmentSection, + () => 1.0 / 30); testForm.Controls.Add(view); testForm.Show(); return view; } - private static ObservableList GenerateDuneLocationCalculations() + private static IObservableEnumerable GenerateDuneLocationCalculations() { - var calculations = new ObservableList + return new ObservableList { new DuneLocationCalculation(new DuneLocation(1, "1", new Point2D(1.0, 1.0), new DuneLocation.ConstructionProperties { @@ -705,7 +765,6 @@ }) } }; - return calculations; } } } \ No newline at end of file