Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.Designer.cs
===================================================================
diff -u -r9ffe6315bcf05d461cb320ff137d4d3c6a552ba0 -r65eb603f0c22966e05487433a9deb80e3041fc47
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.Designer.cs (.../FailureMechanismContributionView.Designer.cs) (revision 9ffe6315bcf05d461cb320ff137d4d3c6a552ba0)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.Designer.cs (.../FailureMechanismContributionView.Designer.cs) (revision 65eb603f0c22966e05487433a9deb80e3041fc47)
@@ -45,9 +45,11 @@
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FailureMechanismContributionView));
this.returnPeriodLabel = new System.Windows.Forms.Label();
this.returnPeriodInput = new System.Windows.Forms.NumericUpDown();
+ this.returnPeriodInput.Enabled = false;
this.perYearLabel = new System.Windows.Forms.Label();
this.assessmentSectionConfigurationLabel = new System.Windows.Forms.Label();
this.assessmentSectionCompositionComboBox = new System.Windows.Forms.ComboBox();
+ this.assessmentSectionCompositionComboBox.Enabled = false;
this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
this.probabilityDistributionGrid = new Core.Common.Controls.DataGrid.DataGridViewControl();
((System.ComponentModel.ISupportInitialize)(this.returnPeriodInput)).BeginInit();
@@ -78,8 +80,6 @@
0,
0,
0});
- this.returnPeriodInput.Validating += new System.ComponentModel.CancelEventHandler(this.ReturnPeriodNumericUpDown_Validating);
- this.returnPeriodInput.Validated += new System.EventHandler(this.ReturnPeriodNumericUpDown_Validated);
//
// perYearLabel
//
Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs
===================================================================
diff -u -r5333bcb57fa6f4738d75699af5374e44ded4cdc2 -r65eb603f0c22966e05487433a9deb80e3041fc47
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs (.../FailureMechanismContributionView.cs) (revision 5333bcb57fa6f4738d75699af5374e44ded4cdc2)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs (.../FailureMechanismContributionView.cs) (revision 65eb603f0c22966e05487433a9deb80e3041fc47)
@@ -20,8 +20,6 @@
// All rights reserved.
using System;
-using System.Collections.Generic;
-using System.ComponentModel;
using System.Globalization;
using System.Linq;
using System.Windows.Forms;
@@ -57,9 +55,6 @@
///
///
private readonly Observer failureMechanismObserver;
-
- private readonly IFailureMechanismContributionNormChangeHandler normChangeHandler;
- private readonly IAssessmentSectionCompositionChangeHandler compositionChangeHandler;
private readonly IViewCommands viewCommands;
private FailureMechanismContribution data;
@@ -68,24 +63,10 @@
///
/// Creates a new instance of .
///
- /// The object responsible for handling the change
- /// in the .
- /// The object responsible for handling the
- /// change in the .
/// Objects exposing high level related commands.
/// When any input argument is null.
- public FailureMechanismContributionView(IFailureMechanismContributionNormChangeHandler normChangeHandler,
- IAssessmentSectionCompositionChangeHandler compositionChangeHandler,
- IViewCommands viewCommands)
+ public FailureMechanismContributionView(IViewCommands viewCommands)
{
- if (normChangeHandler == null)
- {
- throw new ArgumentNullException("normChangeHandler");
- }
- if (compositionChangeHandler == null)
- {
- throw new ArgumentNullException("compositionChangeHandler");
- }
if (viewCommands == null)
{
throw new ArgumentNullException("viewCommands");
@@ -94,12 +75,8 @@
InitializeComponent();
InitializeGridColumns();
InitializeAssessmentSectionCompositionComboBox();
- BindReturnPeriodChange();
- BindReturnPeriodInputLeave();
SubscribeEvents();
- this.normChangeHandler = normChangeHandler;
- this.compositionChangeHandler = compositionChangeHandler;
this.viewCommands = viewCommands;
failureMechanismObserver = new Observer(probabilityDistributionGrid.RefreshDataGridView);
@@ -134,6 +111,7 @@
public void UpdateObserver()
{
+ SetAssessmentSectionComposition();
SetReturnPeriodText();
probabilityDistributionGrid.RefreshDataGridView();
}
@@ -151,7 +129,6 @@
components.Dispose();
}
UnsubscribeEvents();
- UnbindAssessmentSectionCompositionChange();
DetachFromFailureMechanisms();
}
base.Dispose(disposing);
@@ -183,7 +160,6 @@
private void HandleNewDataSet(FailureMechanismContribution value)
{
- UnbindReturnPeriodChange();
DetachFromData();
data = value;
@@ -192,21 +168,18 @@
SetReturnPeriodText();
AttachToData();
- BindReturnPeriodChange();
probabilityDistributionGrid.RefreshDataGridView();
}
private void HandleNewAssessmentSectionSet(IAssessmentSection value)
{
- UnbindAssessmentSectionCompositionChange();
DetachFromFailureMechanisms();
assessmentSection = value;
AttachToFailureMechanisms();
SetAssessmentSectionComposition();
- BindAssessmentSectionCompositionChange();
}
private void DetachFromFailureMechanisms()
@@ -258,35 +231,6 @@
}
}
- private void BindAssessmentSectionCompositionChange()
- {
- assessmentSectionCompositionComboBox.SelectionChangeCommitted += AssessmentSectionCompositionComboBoxSelectionChangeCommitted;
- }
-
- private void UnbindAssessmentSectionCompositionChange()
- {
- assessmentSectionCompositionComboBox.SelectionChangeCommitted -= AssessmentSectionCompositionComboBoxSelectionChangeCommitted;
- }
-
- private void BindReturnPeriodChange()
- {
- // Attaching to inner TextBox instead of 'returnPeriodInput' control to capture all
- // key presses. (This prevents some unexpected unresponsive behavior):
- var innerTextBox = returnPeriodInput.Controls.OfType().First();
- innerTextBox.KeyDown += ReturnPeriodNumericUpDownInnerTextBox_KeyDown;
- }
-
- private void UnbindReturnPeriodChange()
- {
- var innerTextBox = returnPeriodInput.Controls.OfType().First();
- innerTextBox.KeyDown -= ReturnPeriodNumericUpDownInnerTextBox_KeyDown;
- }
-
- private void BindReturnPeriodInputLeave()
- {
- returnPeriodInput.Leave += ReturnPeriodInputLeave;
- }
-
private void SetReturnPeriodText()
{
if (data != null)
@@ -331,19 +275,6 @@
#region Event handling
- private void ReturnPeriodInputLeave(object sender, EventArgs e)
- {
- ResetTextIfEmpty();
- }
-
- private void ResetTextIfEmpty()
- {
- if (string.IsNullOrEmpty(returnPeriodInput.Text))
- {
- returnPeriodInput.Text = returnPeriodInput.Value.ToString(CultureInfo.CurrentCulture);
- }
- }
-
private void ProbabilityDistributionGridOnCellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (data == null)
@@ -397,74 +328,6 @@
return rowData.IsAlwaysRelevant;
}
- private void AssessmentSectionCompositionComboBoxSelectionChangeCommitted(object sender, EventArgs e)
- {
- var newComposition = (AssessmentSectionComposition) assessmentSectionCompositionComboBox.SelectedValue;
- if (assessmentSection.Composition == newComposition)
- {
- return;
- }
-
- if (compositionChangeHandler.ConfirmCompositionChange())
- {
- IEnumerable changedObjects = compositionChangeHandler.ChangeComposition(assessmentSection, newComposition);
- foreach (IObservable changedObject in changedObjects)
- {
- changedObject.NotifyObservers();
- }
- }
- else
- {
- assessmentSectionCompositionComboBox.SelectedValue = assessmentSection.Composition;
- }
- }
-
- private void ReturnPeriodNumericUpDown_Validating(object sender, CancelEventArgs e)
- {
- int returnPeriod = Convert.ToInt32(returnPeriodInput.Value);
- if (returnPeriod != 0 &&
- !assessmentSection.FailureMechanismContribution.Norm.Equals(1.0/returnPeriod) &&
- !normChangeHandler.ConfirmNormChange())
- {
- e.Cancel = true;
- RevertReturnPeriodInputValue();
- }
- }
-
- private void ReturnPeriodNumericUpDown_Validated(object sender, EventArgs e)
- {
- double newNormValue = 1.0/Convert.ToInt32(returnPeriodInput.Value);
- IEnumerable changedObjects = normChangeHandler.ChangeNorm(assessmentSection, newNormValue);
- foreach (IObservable changedObject in changedObjects)
- {
- changedObject.NotifyObservers();
- }
- }
-
- private void ReturnPeriodNumericUpDownInnerTextBox_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Escape)
- {
- RevertReturnPeriodInputValue();
-
- e.Handled = true;
- e.SuppressKeyPress = true;
- }
- else if (e.KeyCode == Keys.Enter)
- {
- ActiveControl = null;
-
- e.Handled = true;
- e.SuppressKeyPress = true;
- }
- }
-
- private void RevertReturnPeriodInputValue()
- {
- SetReturnPeriodText();
- ActiveControl = null;
- }
-
#endregion
}
}
\ No newline at end of file
Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs
===================================================================
diff -u -rc18f1b5eca111867195ebedf813fae22a12ce793 -r65eb603f0c22966e05487433a9deb80e3041fc47
--- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision c18f1b5eca111867195ebedf813fae22a12ce793)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision 65eb603f0c22966e05487433a9deb80e3041fc47)
@@ -308,9 +308,7 @@
GetViewData = context => context.WrappedData,
Image = RingtoetsCommonFormsResources.FailureMechanismContributionIcon,
CloseForData = CloseFailureMechanismContributionViewForData,
- CreateInstance = () => new FailureMechanismContributionView(new FailureMechanismContributionNormChangeHandler(),
- new AssessmentSectionCompositionChangeHandler(),
- Gui.ViewCommands),
+ CreateInstance = () => new FailureMechanismContributionView(Gui.ViewCommands),
AfterCreate = (view, context) =>
{
view.AssessmentSection = context.Parent;
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/FailureMechanismContributionContextPropertiesIntegrationTest.cs
===================================================================
diff -u
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/FailureMechanismContributionContextPropertiesIntegrationTest.cs (revision 0)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/FailureMechanismContributionContextPropertiesIntegrationTest.cs (revision 65eb603f0c22966e05487433a9deb80e3041fc47)
@@ -0,0 +1,582 @@
+// Copyright (C) Stichting Deltares 2016. 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;
+using System.Linq;
+using Core.Common.Base;
+using Core.Common.Base.Data;
+using Core.Common.TestUtil;
+using NUnit.Extensions.Forms;
+using NUnit.Framework;
+using Rhino.Mocks;
+using Ringtoets.Common.Data.AssessmentSection;
+using Ringtoets.Common.Data.Contribution;
+using Ringtoets.Common.Data.Hydraulics;
+using Ringtoets.Common.Data.Probability;
+using Ringtoets.Common.Data.Structures;
+using Ringtoets.Common.Data.TestUtil;
+using Ringtoets.GrassCoverErosionInwards.Data;
+using Ringtoets.GrassCoverErosionInwards.Data.TestUtil;
+using Ringtoets.HeightStructures.Data;
+using Ringtoets.Integration.Data;
+using Ringtoets.Integration.Forms.PropertyClasses;
+using Ringtoets.Integration.Plugin.Handlers;
+using Ringtoets.Piping.Data;
+using Ringtoets.Piping.Data.TestUtil;
+using Ringtoets.Piping.KernelWrapper.TestUtil;
+
+namespace Ringtoets.Integration.Forms.Test
+{
+ [TestFixture]
+ public class FailureMechanismContributionContextPropertiesIntegrationTest : NUnitFormTest
+ {
+ private const string messageAllHydraulicBoundaryLocationOutputCleared =
+ "Alle berekende resultaten voor alle hydraulische randvoorwaardenlocaties zijn verwijderd.";
+
+ private const string messageCalculationsremoved = "De resultaten van {0} berekeningen zijn verwijderd.";
+
+ [Test]
+ public void ReturnPeriodProperty_ValueChanged_ClearsDependentDataAndNotifiesObserversAndLogsMessages()
+ {
+ // Setup
+ const int newReturnPeriod = 200;
+ const int numberOfCalculations = 3;
+
+ var waveHeight = (RoundedDouble) 3.0;
+ var designWaterLevel = (RoundedDouble) 4.2;
+
+ var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation(designWaterLevel, waveHeight);
+ var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase
+ {
+ Locations =
+ {
+ hydraulicBoundaryLocation
+ }
+ };
+
+ var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike)
+ {
+ HydraulicBoundaryDatabase = hydraulicBoundaryDatabase
+ };
+
+ var emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput());
+ var pipingCalculation = new PipingCalculation(new GeneralPipingInput())
+ {
+ Output = new TestPipingOutput(),
+ SemiProbabilisticOutput = new TestPipingSemiProbabilisticOutput()
+ };
+ var emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation();
+ var grassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation
+ {
+ Output = new GrassCoverErosionInwardsOutput(0, false, new ProbabilityAssessmentOutput(0, 0, 0, 0, 0),
+ new TestDikeHeightAssessmentOutput(0))
+ };
+ var emptyHeightStructuresCalculation = new StructuresCalculation();
+ var heightStructuresCalculation = new StructuresCalculation
+ {
+ Output = new ProbabilityAssessmentOutput(0, 0, 0, 0, 0)
+ };
+
+ var grassCoverErosionOutwardsHydraulicBoundaryLocation = hydraulicBoundaryLocation;
+ grassCoverErosionOutwardsHydraulicBoundaryLocation.WaveHeightOutput = new TestHydraulicBoundaryLocationOutput(
+ waveHeight);
+ grassCoverErosionOutwardsHydraulicBoundaryLocation.DesignWaterLevelOutput = new TestHydraulicBoundaryLocationOutput(
+ designWaterLevel);
+
+ assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations.Add(grassCoverErosionOutwardsHydraulicBoundaryLocation);
+
+ assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation);
+ assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(pipingCalculation);
+ assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation);
+ assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(grassCoverErosionInwardsCalculation);
+ assessmentSection.HeightStructures.CalculationsGroup.Children.Add(emptyHeightStructuresCalculation);
+ assessmentSection.HeightStructures.CalculationsGroup.Children.Add(heightStructuresCalculation);
+
+ FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution;
+
+ MockRepository mockRepository = new MockRepository();
+ IObserver observerMock = mockRepository.StrictMock();
+ observerMock.Expect(o => o.UpdateObserver());
+
+ IObserver pipingCalculationObserver = mockRepository.StrictMock();
+ pipingCalculationObserver.Expect(o => o.UpdateObserver());
+ IObserver grassCoverErosionInwardsCalculationObserver = mockRepository.StrictMock();
+ grassCoverErosionInwardsCalculationObserver.Expect(o => o.UpdateObserver());
+ IObserver heightStructuresCalculationObserver = mockRepository.StrictMock();
+ heightStructuresCalculationObserver.Expect(o => o.UpdateObserver());
+ IObserver emptyPipingCalculationObserver = mockRepository.StrictMock();
+ IObserver emptyGrassCoverErosionInwardsCalculationObserver = mockRepository.StrictMock();
+ IObserver emptyHeightStructuresCalculationObserver = mockRepository.StrictMock();
+
+ IObserver hydraulicBoundaryDatabaseObserver = mockRepository.StrictMock();
+ hydraulicBoundaryDatabaseObserver.Expect(hbdo => hbdo.UpdateObserver());
+ IObserver grassCoverErosionOutwardsObserver = mockRepository.StrictMock();
+ grassCoverErosionOutwardsObserver.Expect(o => o.UpdateObserver());
+ mockRepository.ReplayAll();
+
+ failureMechanismContribution.Attach(observerMock);
+ hydraulicBoundaryDatabase.Attach(hydraulicBoundaryDatabaseObserver);
+
+ emptyPipingCalculation.Attach(emptyPipingCalculationObserver);
+ emptyGrassCoverErosionInwardsCalculation.Attach(emptyGrassCoverErosionInwardsCalculationObserver);
+ emptyHeightStructuresCalculation.Attach(emptyHeightStructuresCalculationObserver);
+
+ pipingCalculation.Attach(pipingCalculationObserver);
+ grassCoverErosionInwardsCalculation.Attach(grassCoverErosionInwardsCalculationObserver);
+ heightStructuresCalculation.Attach(heightStructuresCalculationObserver);
+
+ assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations.Attach(grassCoverErosionOutwardsObserver);
+
+ var properties = new FailureMechanismContributionContextProperties()
+ {
+ Data = failureMechanismContribution,
+ AssessmentSection = assessmentSection,
+ NormChangeHandler = new FailureMechanismContributionNormChangeHandler()
+ };
+
+ // Precondition
+ int originalReturnPeriodValue = Convert.ToInt32(1.0/failureMechanismContribution.Norm);
+ Assert.AreEqual(originalReturnPeriodValue, properties.ReturnPeriod);
+ Assert.AreEqual(waveHeight, hydraulicBoundaryLocation.WaveHeight, hydraulicBoundaryLocation.WaveHeight.GetAccuracy());
+ Assert.AreEqual(designWaterLevel, hydraulicBoundaryLocation.DesignWaterLevel, hydraulicBoundaryLocation.DesignWaterLevel.GetAccuracy());
+ Assert.AreEqual(waveHeight, grassCoverErosionOutwardsHydraulicBoundaryLocation.WaveHeight, grassCoverErosionOutwardsHydraulicBoundaryLocation.WaveHeight.GetAccuracy());
+ Assert.AreEqual(designWaterLevel, grassCoverErosionOutwardsHydraulicBoundaryLocation.DesignWaterLevel, grassCoverErosionOutwardsHydraulicBoundaryLocation.DesignWaterLevel.GetAccuracy());
+
+ Assert.IsNotNull(pipingCalculation.Output);
+ Assert.IsNotNull(pipingCalculation.SemiProbabilisticOutput);
+ Assert.IsNotNull(grassCoverErosionInwardsCalculation.Output);
+ Assert.IsNotNull(heightStructuresCalculation.Output);
+
+ DialogBoxHandler = (name, wnd) =>
+ {
+ var dialogTester = new MessageBoxTester(wnd);
+ dialogTester.ClickOk();
+ };
+
+ // Call
+ Action call = () => properties.ReturnPeriod = newReturnPeriod;
+
+ // Assert
+ TestHelper.AssertLogMessages(call, msgs =>
+ {
+ string[] messages = msgs.ToArray();
+ Assert.AreEqual(string.Format(messageCalculationsremoved, numberOfCalculations), messages[0]);
+ Assert.AreEqual(messageAllHydraulicBoundaryLocationOutputCleared, messages[1]);
+ });
+ Assert.AreEqual(1.0/newReturnPeriod, failureMechanismContribution.Norm);
+ Assert.IsNaN(hydraulicBoundaryLocation.WaveHeight);
+ Assert.IsNaN(hydraulicBoundaryLocation.DesignWaterLevel);
+ Assert.IsNaN(grassCoverErosionOutwardsHydraulicBoundaryLocation.WaveHeight);
+ Assert.IsNaN(grassCoverErosionOutwardsHydraulicBoundaryLocation.DesignWaterLevel);
+ Assert.IsNull(pipingCalculation.Output);
+ Assert.IsNull(pipingCalculation.SemiProbabilisticOutput);
+ Assert.IsNull(grassCoverErosionInwardsCalculation.Output);
+ Assert.IsNull(heightStructuresCalculation.Output);
+
+ mockRepository.VerifyAll();
+ }
+
+ [Test]
+ public void ReturnPeriodProperty_HydraulicBoundarySetAndCalculationsNoOutput_HydraulicBoundaryDatabaseObserversNotifiedAndMessagesLogged()
+ {
+ // Setup
+ const int newReturnPeriod = 200;
+
+ var waveHeight = (RoundedDouble) 3.0;
+ var designWaterLevel = (RoundedDouble) 4.2;
+ HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
+ hydraulicBoundaryDatabase.Locations.Add(new TestHydraulicBoundaryLocation(designWaterLevel, waveHeight));
+
+ AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike)
+ {
+ HydraulicBoundaryDatabase = hydraulicBoundaryDatabase
+ };
+
+ PipingCalculation emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput());
+ GrassCoverErosionInwardsCalculation emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation();
+ var emptyHeightStructuresCalculation = new StructuresCalculation();
+
+ assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation);
+ assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation);
+ assessmentSection.HeightStructures.CalculationsGroup.Children.Add(emptyHeightStructuresCalculation);
+
+ FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution;
+
+ MockRepository mockRepository = new MockRepository();
+ IObserver observerMock = mockRepository.StrictMock();
+ observerMock.Expect(o => o.UpdateObserver());
+ IObserver calculationObserver = mockRepository.StrictMock(); // No update observers expected.
+ IObserver hydraulicBoundaryDatabaseObserver = mockRepository.StrictMock();
+ hydraulicBoundaryDatabaseObserver.Expect(hbdo => hbdo.UpdateObserver());
+ mockRepository.ReplayAll();
+
+ failureMechanismContribution.Attach(observerMock);
+ hydraulicBoundaryDatabase.Attach(hydraulicBoundaryDatabaseObserver);
+
+ emptyPipingCalculation.Attach(calculationObserver);
+ emptyGrassCoverErosionInwardsCalculation.Attach(calculationObserver);
+ emptyHeightStructuresCalculation.Attach(calculationObserver);
+
+ var properties = new FailureMechanismContributionContextProperties()
+ {
+ Data = failureMechanismContribution,
+ AssessmentSection = assessmentSection,
+ NormChangeHandler = new FailureMechanismContributionNormChangeHandler()
+ };
+
+ HydraulicBoundaryLocation hydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryDatabase.Locations[0];
+
+ // Precondition
+ int originalReturnPeriodValue = Convert.ToInt32(1.0/failureMechanismContribution.Norm);
+ Assert.AreEqual(originalReturnPeriodValue, properties.ReturnPeriod);
+ Assert.AreEqual(waveHeight, hydraulicBoundaryLocation.WaveHeight, hydraulicBoundaryLocation.WaveHeight.GetAccuracy());
+ Assert.AreEqual(designWaterLevel, hydraulicBoundaryLocation.DesignWaterLevel, hydraulicBoundaryLocation.DesignWaterLevel.GetAccuracy());
+
+ DialogBoxHandler = (name, wnd) =>
+ {
+ var dialogTester = new MessageBoxTester(wnd);
+ dialogTester.ClickOk();
+ };
+
+ // Call
+ Action call = () => properties.ReturnPeriod = newReturnPeriod;
+
+ // Assert
+ TestHelper.AssertLogMessageIsGenerated(call, messageAllHydraulicBoundaryLocationOutputCleared, 1);
+
+ Assert.AreEqual(1.0/newReturnPeriod, failureMechanismContribution.Norm);
+ Assert.IsNaN(hydraulicBoundaryLocation.WaveHeight);
+ Assert.IsNaN(hydraulicBoundaryLocation.DesignWaterLevel);
+
+ mockRepository.VerifyAll();
+ }
+
+ [Test]
+ public void ReturnPeriodProperty_HydraulicBoundaryLocationNoOutputAndCalculationWithOutputAndValueChanged_CalculationObserverNotifiedAndMessageLogged()
+ {
+ // Setup
+ const int newReturnPeriod = 200;
+ const int numberOfCalculations = 3;
+
+ HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
+ hydraulicBoundaryDatabase.Locations.Add(new TestHydraulicBoundaryLocation());
+
+ AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike)
+ {
+ HydraulicBoundaryDatabase = hydraulicBoundaryDatabase
+ };
+
+ PipingCalculation emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput());
+ PipingCalculation pipingCalculation = new PipingCalculation(new GeneralPipingInput())
+ {
+ Output = new TestPipingOutput(),
+ SemiProbabilisticOutput = new TestPipingSemiProbabilisticOutput()
+ };
+ GrassCoverErosionInwardsCalculation emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation();
+ GrassCoverErosionInwardsCalculation grassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation
+ {
+ Output = new GrassCoverErosionInwardsOutput(0, false, new ProbabilityAssessmentOutput(0, 0, 0, 0, 0),
+ new TestDikeHeightAssessmentOutput(0))
+ };
+ var emptyHeightStructuresCalculation = new StructuresCalculation();
+ var heightStructuresCalculation = new StructuresCalculation
+ {
+ Output = new ProbabilityAssessmentOutput(0, 0, 0, 0, 0)
+ };
+
+ assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation);
+ assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(pipingCalculation);
+ assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation);
+ assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(grassCoverErosionInwardsCalculation);
+ assessmentSection.HeightStructures.CalculationsGroup.Children.Add(emptyHeightStructuresCalculation);
+ assessmentSection.HeightStructures.CalculationsGroup.Children.Add(heightStructuresCalculation);
+
+ FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution;
+
+ MockRepository mockRepository = new MockRepository();
+ IObserver observerMock = mockRepository.StrictMock();
+ observerMock.Expect(o => o.UpdateObserver());
+
+ IObserver pipingCalculationObserver = mockRepository.StrictMock();
+ pipingCalculationObserver.Expect(o => o.UpdateObserver());
+ IObserver grassCoverErosionInwardsCalculationObserver = mockRepository.StrictMock();
+ grassCoverErosionInwardsCalculationObserver.Expect(o => o.UpdateObserver());
+ IObserver heightStructuresCalculationObserver = mockRepository.StrictMock();
+ heightStructuresCalculationObserver.Expect(o => o.UpdateObserver());
+ IObserver emptyPipingCalculationObserver = mockRepository.StrictMock();
+ IObserver emptyGrassCoverErosionInwardsCalculationObserver = mockRepository.StrictMock();
+ IObserver emptyHeightStructuresCalculationObserver = mockRepository.StrictMock();
+
+ IObserver hydraulicBoundaryDatabaseObserver = mockRepository.StrictMock(); // No update observer expected.
+ mockRepository.ReplayAll();
+
+ failureMechanismContribution.Attach(observerMock);
+ hydraulicBoundaryDatabase.Attach(hydraulicBoundaryDatabaseObserver);
+
+ emptyPipingCalculation.Attach(emptyPipingCalculationObserver);
+ emptyGrassCoverErosionInwardsCalculation.Attach(emptyGrassCoverErosionInwardsCalculationObserver);
+ emptyHeightStructuresCalculation.Attach(emptyHeightStructuresCalculationObserver);
+
+ pipingCalculation.Attach(pipingCalculationObserver);
+ grassCoverErosionInwardsCalculation.Attach(grassCoverErosionInwardsCalculationObserver);
+ heightStructuresCalculation.Attach(heightStructuresCalculationObserver);
+
+ var properties = new FailureMechanismContributionContextProperties()
+ {
+ Data = failureMechanismContribution,
+ AssessmentSection = assessmentSection,
+ NormChangeHandler = new FailureMechanismContributionNormChangeHandler()
+ };
+
+ // Precondition
+ int originalReturnPeriodValue = Convert.ToInt32(1.0/failureMechanismContribution.Norm);
+ Assert.AreEqual(originalReturnPeriodValue, properties.ReturnPeriod);
+ Assert.IsNotNull(pipingCalculation.Output);
+ Assert.IsNotNull(pipingCalculation.SemiProbabilisticOutput);
+ Assert.IsNotNull(grassCoverErosionInwardsCalculation.Output);
+ Assert.IsNotNull(heightStructuresCalculation.Output);
+
+ DialogBoxHandler = (name, wnd) =>
+ {
+ var dialogTester = new MessageBoxTester(wnd);
+ dialogTester.ClickOk();
+ };
+
+ // Call
+ Action call = () => properties.ReturnPeriod = newReturnPeriod;
+
+ // Assert
+ string expectedMessage = string.Format(messageCalculationsremoved,
+ numberOfCalculations);
+ TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1);
+
+ Assert.AreEqual(1.0/newReturnPeriod, failureMechanismContribution.Norm);
+ Assert.IsNull(pipingCalculation.Output);
+ Assert.IsNull(pipingCalculation.SemiProbabilisticOutput);
+ Assert.IsNull(grassCoverErosionInwardsCalculation.Output);
+ Assert.IsNull(heightStructuresCalculation.Output);
+
+ mockRepository.VerifyAll();
+ }
+
+ [Test]
+ public void ReturnPeriodProperty_NoHydraulicBoundaryLocationNoOutputAndCalculationWithOutputAndValueChanged_CalculationObserverNotifiedAndMessageLogged()
+ {
+ // Setup
+ const int newReturnPeriod = 200;
+ const int numberOfCalculations = 3;
+
+ AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
+
+ PipingCalculation emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput());
+ PipingCalculation pipingCalculation = new PipingCalculation(new GeneralPipingInput())
+ {
+ Output = new TestPipingOutput(),
+ SemiProbabilisticOutput = new TestPipingSemiProbabilisticOutput()
+ };
+ GrassCoverErosionInwardsCalculation emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation();
+ GrassCoverErosionInwardsCalculation grassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation
+ {
+ Output = new GrassCoverErosionInwardsOutput(0, false, new ProbabilityAssessmentOutput(0, 0, 0, 0, 0),
+ new TestDikeHeightAssessmentOutput(0))
+ };
+ var emptyHeightStructuresCalculation = new StructuresCalculation();
+ var heightStructuresCalculation = new StructuresCalculation
+ {
+ Output = new ProbabilityAssessmentOutput(0, 0, 0, 0, 0)
+ };
+
+ assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation);
+ assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(pipingCalculation);
+ assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation);
+ assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(grassCoverErosionInwardsCalculation);
+ assessmentSection.HeightStructures.CalculationsGroup.Children.Add(emptyHeightStructuresCalculation);
+ assessmentSection.HeightStructures.CalculationsGroup.Children.Add(heightStructuresCalculation);
+
+ FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution;
+
+ MockRepository mockRepository = new MockRepository();
+ IObserver observerMock = mockRepository.StrictMock();
+ observerMock.Expect(o => o.UpdateObserver());
+
+ IObserver pipingCalculationObserver = mockRepository.StrictMock();
+ pipingCalculationObserver.Expect(o => o.UpdateObserver());
+ IObserver grassCoverErosionInwardsCalculationObserver = mockRepository.StrictMock();
+ grassCoverErosionInwardsCalculationObserver.Expect(o => o.UpdateObserver());
+ IObserver heightStructuresCalculationObserver = mockRepository.StrictMock();
+ heightStructuresCalculationObserver.Expect(o => o.UpdateObserver());
+ IObserver emptyPipingCalculationObserver = mockRepository.StrictMock();
+ IObserver emptyGrassCoverErosionInwardsCalculationObserver = mockRepository.StrictMock();
+ IObserver emptyHeightStructuresCalculationObserver = mockRepository.StrictMock();
+
+ mockRepository.ReplayAll();
+
+ failureMechanismContribution.Attach(observerMock);
+
+ emptyPipingCalculation.Attach(emptyPipingCalculationObserver);
+ emptyGrassCoverErosionInwardsCalculation.Attach(emptyGrassCoverErosionInwardsCalculationObserver);
+ emptyHeightStructuresCalculation.Attach(emptyHeightStructuresCalculationObserver);
+
+ pipingCalculation.Attach(pipingCalculationObserver);
+ grassCoverErosionInwardsCalculation.Attach(grassCoverErosionInwardsCalculationObserver);
+ heightStructuresCalculation.Attach(heightStructuresCalculationObserver);
+
+ var properties = new FailureMechanismContributionContextProperties()
+ {
+ Data = failureMechanismContribution,
+ AssessmentSection = assessmentSection,
+ NormChangeHandler = new FailureMechanismContributionNormChangeHandler()
+ };
+
+ // Precondition
+ int originalReturnPeriodValue = Convert.ToInt32(1.0/failureMechanismContribution.Norm);
+ Assert.AreEqual(originalReturnPeriodValue, properties.ReturnPeriod);
+ Assert.IsNotNull(pipingCalculation.Output);
+ Assert.IsNotNull(pipingCalculation.SemiProbabilisticOutput);
+ Assert.IsNotNull(grassCoverErosionInwardsCalculation.Output);
+ Assert.IsNotNull(heightStructuresCalculation.Output);
+
+ DialogBoxHandler = (name, wnd) =>
+ {
+ var dialogTester = new MessageBoxTester(wnd);
+ dialogTester.ClickOk();
+ };
+
+ // Call
+ Action call = () => properties.ReturnPeriod = newReturnPeriod;
+
+ // Assert
+ string expectedMessage = string.Format(messageCalculationsremoved,
+ numberOfCalculations);
+ TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1);
+
+ Assert.AreEqual(1.0/newReturnPeriod, failureMechanismContribution.Norm);
+ Assert.IsNull(pipingCalculation.Output);
+ Assert.IsNull(pipingCalculation.SemiProbabilisticOutput);
+ Assert.IsNull(grassCoverErosionInwardsCalculation.Output);
+ Assert.IsNull(heightStructuresCalculation.Output);
+
+ mockRepository.VerifyAll();
+ }
+
+ [Test]
+ public void ReturnPeriodProperty_HydraulicBoundaryLocationNoOutputAndNoCalculationsWithOutputAndValueChanged_NoObserversNotifiedAndMessagesLogged()
+ {
+ // Setup
+ const int newReturnPeriod = 200;
+
+ HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
+ hydraulicBoundaryDatabase.Locations.Add(new TestHydraulicBoundaryLocation());
+
+ AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike)
+ {
+ HydraulicBoundaryDatabase = hydraulicBoundaryDatabase
+ };
+
+ PipingCalculation emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput());
+ GrassCoverErosionInwardsCalculation emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation();
+ var emptyHeightStructuresCalculation = new StructuresCalculation();
+
+ assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation);
+ assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation);
+ assessmentSection.HeightStructures.CalculationsGroup.Children.Add(emptyHeightStructuresCalculation);
+
+ FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution;
+
+ MockRepository mockRepository = new MockRepository();
+ IObserver observerMock = mockRepository.StrictMock();
+ observerMock.Expect(o => o.UpdateObserver());
+ IObserver calculationObserver = mockRepository.StrictMock();
+ IObserver hydraulicBoundaryDatabaseObserver = mockRepository.StrictMock();
+ mockRepository.ReplayAll();
+
+ failureMechanismContribution.Attach(observerMock);
+ emptyPipingCalculation.Attach(calculationObserver);
+ emptyGrassCoverErosionInwardsCalculation.Attach(calculationObserver);
+ emptyHeightStructuresCalculation.Attach(calculationObserver);
+ hydraulicBoundaryDatabase.Attach(hydraulicBoundaryDatabaseObserver);
+
+ var properties = new FailureMechanismContributionContextProperties()
+ {
+ Data = failureMechanismContribution,
+ AssessmentSection = assessmentSection,
+ NormChangeHandler = new FailureMechanismContributionNormChangeHandler()
+ };
+
+ // Precondition
+ int originalReturnPeriodValue = Convert.ToInt32(1.0/failureMechanismContribution.Norm);
+ Assert.AreEqual(originalReturnPeriodValue, properties.ReturnPeriod);
+
+ DialogBoxHandler = (name, wnd) =>
+ {
+ var dialogTester = new MessageBoxTester(wnd);
+ dialogTester.ClickOk();
+ };
+
+ // Call
+ Action call = () => properties.ReturnPeriod = newReturnPeriod;
+
+ // Assert
+ TestHelper.AssertLogMessagesCount(call, 0);
+ Assert.AreEqual(1.0/newReturnPeriod, failureMechanismContribution.Norm);
+
+ mockRepository.VerifyAll(); // No update observer expected.
+ }
+
+ [Test]
+ public void ReturnPeriodProperty_NoHydraulicBoundaryDatabaseAndNoCalculationsWithOutputAndValueChanged_NoObserversNotifiedAndMessagesLogged()
+ {
+ // Setup
+ const int newReturnPeriod = 200;
+
+ AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
+
+ PipingCalculation emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput());
+ GrassCoverErosionInwardsCalculation emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation();
+ var emptyHeightStructuresCalculation = new StructuresCalculation();
+
+ assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation);
+ assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation);
+ assessmentSection.HeightStructures.CalculationsGroup.Children.Add(emptyHeightStructuresCalculation);
+
+ FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution;
+
+ var properties = new FailureMechanismContributionContextProperties()
+ {
+ Data = failureMechanismContribution,
+ AssessmentSection = assessmentSection,
+ NormChangeHandler = new FailureMechanismContributionNormChangeHandler()
+ };
+
+ // Precondition
+ int originalReturnPeriodValue = Convert.ToInt32(1.0/failureMechanismContribution.Norm);
+ Assert.AreEqual(originalReturnPeriodValue, properties.ReturnPeriod);
+
+ // Call
+ failureMechanismContribution.Norm = 1.0/newReturnPeriod;
+ Action call = () => failureMechanismContribution.NotifyObservers();
+
+ // Assert
+ TestHelper.AssertLogMessagesCount(call, 0);
+ Assert.AreEqual(1.0/newReturnPeriod, failureMechanismContribution.Norm);
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/FailureMechanismContributionViewIntegrationTest.cs
===================================================================
diff -u -rd56bec747401ad6676fac64af5eef6d5fd89c47c -r65eb603f0c22966e05487433a9deb80e3041fc47
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/FailureMechanismContributionViewIntegrationTest.cs (.../FailureMechanismContributionViewIntegrationTest.cs) (revision d56bec747401ad6676fac64af5eef6d5fd89c47c)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/FailureMechanismContributionViewIntegrationTest.cs (.../FailureMechanismContributionViewIntegrationTest.cs) (revision 65eb603f0c22966e05487433a9deb80e3041fc47)
@@ -19,46 +19,23 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
-using System;
using System.Collections.Generic;
-using System.ComponentModel;
-using System.Globalization;
using System.Linq;
using System.Windows.Forms;
-using Core.Common.Base;
-using Core.Common.Base.Data;
using Core.Common.Gui.Commands;
-using Core.Common.TestUtil;
using NUnit.Extensions.Forms;
using NUnit.Framework;
using Rhino.Mocks;
using Ringtoets.Common.Data.AssessmentSection;
using Ringtoets.Common.Data.Contribution;
-using Ringtoets.Common.Data.Hydraulics;
-using Ringtoets.Common.Data.Probability;
-using Ringtoets.Common.Data.Structures;
-using Ringtoets.Common.Data.TestUtil;
-using Ringtoets.GrassCoverErosionInwards.Data;
-using Ringtoets.GrassCoverErosionInwards.Data.TestUtil;
-using Ringtoets.HeightStructures.Data;
using Ringtoets.Integration.Data;
using Ringtoets.Integration.Forms.Views;
-using Ringtoets.Integration.Plugin.Handlers;
-using Ringtoets.Piping.Data;
-using Ringtoets.Piping.Data.TestUtil;
-using Ringtoets.Piping.KernelWrapper.TestUtil;
-namespace Ringtoets.Integration.Forms.Test
+namespace Ringtoets.Integration.Forms.Test.Views
{
[TestFixture]
- public class FailureMechanismContributionViewIntegrationTest : NUnitFormTest
+ public class FailureMechanismContributionViewIntegrationTest
{
- private const string messageAllHydraulicBoundaryLocationOutputCleared =
- "Alle berekende resultaten voor alle hydraulische randvoorwaardenlocaties zijn verwijderd.";
-
- private const string messageCalculationsremoved = "De resultaten van {0} berekeningen zijn verwijderd.";
-
- private const string returnPeriodInputTextBoxName = "returnPeriodInput";
private const string dataGridViewControlName = "dataGridView";
private const string assessmentSectionCompositionComboBoxName = "assessmentSectionCompositionComboBox";
private const int isRelevantColumnIndex = 0;
@@ -68,616 +45,13 @@
private const int probabilitySpaceColumnIndex = 4;
[Test]
- public void ReturnPeriodTextBox_ValueChanged_ClearsDependentDataAndNotifiesObserversAndLogsMessages()
- {
- // Setup
- const int newReturnPeriod = 200;
- const int numberOfCalculations = 3;
-
- var waveHeight = (RoundedDouble) 3.0;
- var designWaterLevel = (RoundedDouble) 4.2;
-
- var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation(designWaterLevel, waveHeight);
- var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase
- {
- Locations =
- {
- hydraulicBoundaryLocation
- }
- };
-
- var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike)
- {
- HydraulicBoundaryDatabase = hydraulicBoundaryDatabase
- };
-
- var emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput());
- var pipingCalculation = new PipingCalculation(new GeneralPipingInput())
- {
- Output = new TestPipingOutput(),
- SemiProbabilisticOutput = new TestPipingSemiProbabilisticOutput()
- };
- var emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation();
- var grassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation
- {
- Output = new GrassCoverErosionInwardsOutput(0, false, new ProbabilityAssessmentOutput(0, 0, 0, 0, 0),
- new TestDikeHeightAssessmentOutput(0))
- };
- var emptyHeightStructuresCalculation = new StructuresCalculation();
- var heightStructuresCalculation = new StructuresCalculation
- {
- Output = new ProbabilityAssessmentOutput(0, 0, 0, 0, 0)
- };
-
- var grassCoverErosionOutwardsHydraulicBoundaryLocation = hydraulicBoundaryLocation;
- grassCoverErosionOutwardsHydraulicBoundaryLocation.WaveHeightOutput = new TestHydraulicBoundaryLocationOutput(
- waveHeight);
- grassCoverErosionOutwardsHydraulicBoundaryLocation.DesignWaterLevelOutput = new TestHydraulicBoundaryLocationOutput(
- designWaterLevel);
-
- assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations.Add(grassCoverErosionOutwardsHydraulicBoundaryLocation);
-
- assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation);
- assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(pipingCalculation);
- assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation);
- assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(grassCoverErosionInwardsCalculation);
- assessmentSection.HeightStructures.CalculationsGroup.Children.Add(emptyHeightStructuresCalculation);
- assessmentSection.HeightStructures.CalculationsGroup.Children.Add(heightStructuresCalculation);
-
- FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution;
-
- MockRepository mockRepository = new MockRepository();
- IObserver observerMock = mockRepository.StrictMock();
- observerMock.Expect(o => o.UpdateObserver());
-
- IObserver pipingCalculationObserver = mockRepository.StrictMock();
- pipingCalculationObserver.Expect(o => o.UpdateObserver());
- IObserver grassCoverErosionInwardsCalculationObserver = mockRepository.StrictMock();
- grassCoverErosionInwardsCalculationObserver.Expect(o => o.UpdateObserver());
- IObserver heightStructuresCalculationObserver = mockRepository.StrictMock();
- heightStructuresCalculationObserver.Expect(o => o.UpdateObserver());
- IObserver emptyPipingCalculationObserver = mockRepository.StrictMock();
- IObserver emptyGrassCoverErosionInwardsCalculationObserver = mockRepository.StrictMock();
- IObserver emptyHeightStructuresCalculationObserver = mockRepository.StrictMock();
-
- IObserver hydraulicBoundaryDatabaseObserver = mockRepository.StrictMock();
- hydraulicBoundaryDatabaseObserver.Expect(hbdo => hbdo.UpdateObserver());
- IObserver grassCoverErosionOutwardsObserver = mockRepository.StrictMock();
- grassCoverErosionOutwardsObserver.Expect(o => o.UpdateObserver());
-
- var viewCommands = mockRepository.Stub();
- mockRepository.ReplayAll();
-
- failureMechanismContribution.Attach(observerMock);
- hydraulicBoundaryDatabase.Attach(hydraulicBoundaryDatabaseObserver);
-
- emptyPipingCalculation.Attach(emptyPipingCalculationObserver);
- emptyGrassCoverErosionInwardsCalculation.Attach(emptyGrassCoverErosionInwardsCalculationObserver);
- emptyHeightStructuresCalculation.Attach(emptyHeightStructuresCalculationObserver);
-
- pipingCalculation.Attach(pipingCalculationObserver);
- grassCoverErosionInwardsCalculation.Attach(grassCoverErosionInwardsCalculationObserver);
- heightStructuresCalculation.Attach(heightStructuresCalculationObserver);
-
- assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations.Attach(grassCoverErosionOutwardsObserver);
-
- var normChangeHandler = new FailureMechanismContributionNormChangeHandler();
- var compositionChangeHandler = new AssessmentSectionCompositionChangeHandler();
-
- using (var form = new Form())
- using (var distributionView = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
- {
- Data = failureMechanismContribution,
- AssessmentSection = assessmentSection
- })
- {
- form.Controls.Add(distributionView);
- form.Show();
-
- var returnPeriodTester = new ControlTester(returnPeriodInputTextBoxName);
-
- // Precondition
- int originalReturnPeriodValue = Convert.ToInt32(1.0/failureMechanismContribution.Norm);
- Assert.AreEqual(originalReturnPeriodValue.ToString(), returnPeriodTester.Text);
- Assert.AreEqual(waveHeight, hydraulicBoundaryLocation.WaveHeight, hydraulicBoundaryLocation.WaveHeight.GetAccuracy());
- Assert.AreEqual(designWaterLevel, hydraulicBoundaryLocation.DesignWaterLevel, hydraulicBoundaryLocation.DesignWaterLevel.GetAccuracy());
- Assert.AreEqual(waveHeight, grassCoverErosionOutwardsHydraulicBoundaryLocation.WaveHeight, grassCoverErosionOutwardsHydraulicBoundaryLocation.WaveHeight.GetAccuracy());
- Assert.AreEqual(designWaterLevel, grassCoverErosionOutwardsHydraulicBoundaryLocation.DesignWaterLevel, grassCoverErosionOutwardsHydraulicBoundaryLocation.DesignWaterLevel.GetAccuracy());
-
- Assert.IsNotNull(pipingCalculation.Output);
- Assert.IsNotNull(pipingCalculation.SemiProbabilisticOutput);
- Assert.IsNotNull(grassCoverErosionInwardsCalculation.Output);
- Assert.IsNotNull(heightStructuresCalculation.Output);
-
- DialogBoxHandler = (name, wnd) =>
- {
- var dialogTester = new MessageBoxTester(wnd);
- dialogTester.ClickOk();
- };
-
- // Call
- Action call = () => SimulateUserCommittingReturnPeriodValue(returnPeriodTester, newReturnPeriod);
-
- // Assert
- TestHelper.AssertLogMessages(call, msgs =>
- {
- string[] messages = msgs.ToArray();
- Assert.AreEqual(string.Format(messageCalculationsremoved, numberOfCalculations), messages[0]);
- Assert.AreEqual(messageAllHydraulicBoundaryLocationOutputCleared, messages[1]);
- });
- Assert.AreEqual(1.0/newReturnPeriod, failureMechanismContribution.Norm);
- Assert.IsNaN(hydraulicBoundaryLocation.WaveHeight);
- Assert.IsNaN(hydraulicBoundaryLocation.DesignWaterLevel);
- Assert.IsNaN(grassCoverErosionOutwardsHydraulicBoundaryLocation.WaveHeight);
- Assert.IsNaN(grassCoverErosionOutwardsHydraulicBoundaryLocation.DesignWaterLevel);
- Assert.IsNull(pipingCalculation.Output);
- Assert.IsNull(pipingCalculation.SemiProbabilisticOutput);
- Assert.IsNull(grassCoverErosionInwardsCalculation.Output);
- Assert.IsNull(heightStructuresCalculation.Output);
- }
- mockRepository.VerifyAll();
- }
-
- [Test]
- public void ReturnPeriodTextBox_HydraulicBoundarySetAndCalculationsNoOutput_HydraulicBoundaryDatabaseObserversNotifiedAndMessagesLogged()
- {
- // Setup
- const int newReturnPeriod = 200;
-
- var waveHeight = (RoundedDouble) 3.0;
- var designWaterLevel = (RoundedDouble) 4.2;
- HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
- hydraulicBoundaryDatabase.Locations.Add(new TestHydraulicBoundaryLocation(designWaterLevel, waveHeight));
-
- AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike)
- {
- HydraulicBoundaryDatabase = hydraulicBoundaryDatabase
- };
-
- PipingCalculation emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput());
- GrassCoverErosionInwardsCalculation emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation();
- var emptyHeightStructuresCalculation = new StructuresCalculation();
-
- assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation);
- assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation);
- assessmentSection.HeightStructures.CalculationsGroup.Children.Add(emptyHeightStructuresCalculation);
-
- FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution;
-
- MockRepository mockRepository = new MockRepository();
- IObserver observerMock = mockRepository.StrictMock();
- observerMock.Expect(o => o.UpdateObserver());
- IObserver calculationObserver = mockRepository.StrictMock(); // No update observers expected.
- IObserver hydraulicBoundaryDatabaseObserver = mockRepository.StrictMock();
- hydraulicBoundaryDatabaseObserver.Expect(hbdo => hbdo.UpdateObserver());
-
- var viewCommands = mockRepository.Stub();
- mockRepository.ReplayAll();
-
- failureMechanismContribution.Attach(observerMock);
- hydraulicBoundaryDatabase.Attach(hydraulicBoundaryDatabaseObserver);
-
- emptyPipingCalculation.Attach(calculationObserver);
- emptyGrassCoverErosionInwardsCalculation.Attach(calculationObserver);
- emptyHeightStructuresCalculation.Attach(calculationObserver);
-
- var normChangeHandler = new FailureMechanismContributionNormChangeHandler();
- var compositionChangeHandler = new AssessmentSectionCompositionChangeHandler();
-
- using (Form form = new Form())
- using (FailureMechanismContributionView distributionView = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
- {
- Data = failureMechanismContribution,
- AssessmentSection = assessmentSection
- })
- {
- form.Controls.Add(distributionView);
- form.Show();
-
- ControlTester returnPeriodTester = new ControlTester(returnPeriodInputTextBoxName);
-
- HydraulicBoundaryLocation hydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryDatabase.Locations[0];
-
- // Precondition
- int originalReturnPeriodValue = Convert.ToInt32(1.0/failureMechanismContribution.Norm);
- Assert.AreEqual(originalReturnPeriodValue.ToString(CultureInfo.CurrentCulture), returnPeriodTester.Text);
- Assert.AreEqual(waveHeight, hydraulicBoundaryLocation.WaveHeight, hydraulicBoundaryLocation.WaveHeight.GetAccuracy());
- Assert.AreEqual(designWaterLevel, hydraulicBoundaryLocation.DesignWaterLevel, hydraulicBoundaryLocation.DesignWaterLevel.GetAccuracy());
-
- DialogBoxHandler = (name, wnd) =>
- {
- var dialogTester = new MessageBoxTester(wnd);
- dialogTester.ClickOk();
- };
-
- // Call
- Action call = () => SimulateUserCommittingReturnPeriodValue(returnPeriodTester, newReturnPeriod);
-
- // Assert
- TestHelper.AssertLogMessageIsGenerated(call, messageAllHydraulicBoundaryLocationOutputCleared, 1);
-
- Assert.AreEqual(1.0/newReturnPeriod, failureMechanismContribution.Norm);
- Assert.IsNaN(hydraulicBoundaryLocation.WaveHeight);
- Assert.IsNaN(hydraulicBoundaryLocation.DesignWaterLevel);
- }
- mockRepository.VerifyAll();
- }
-
- [Test]
- public void ReturnPeriodTextBox_HydraulicBoundaryLocationNoOutputAndCalculationWithOutputAndValueChanged_CalculationObserverNotifiedAndMessageLogged()
- {
- // Setup
- const int newReturnPeriod = 200;
- const int numberOfCalculations = 3;
-
- HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
- hydraulicBoundaryDatabase.Locations.Add(new TestHydraulicBoundaryLocation());
-
- AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike)
- {
- HydraulicBoundaryDatabase = hydraulicBoundaryDatabase
- };
-
- PipingCalculation emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput());
- PipingCalculation pipingCalculation = new PipingCalculation(new GeneralPipingInput())
- {
- Output = new TestPipingOutput(),
- SemiProbabilisticOutput = new TestPipingSemiProbabilisticOutput()
- };
- GrassCoverErosionInwardsCalculation emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation();
- GrassCoverErosionInwardsCalculation grassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation
- {
- Output = new GrassCoverErosionInwardsOutput(0, false, new ProbabilityAssessmentOutput(0, 0, 0, 0, 0),
- new TestDikeHeightAssessmentOutput(0))
- };
- var emptyHeightStructuresCalculation = new StructuresCalculation();
- var heightStructuresCalculation = new StructuresCalculation
- {
- Output = new ProbabilityAssessmentOutput(0, 0, 0, 0, 0)
- };
-
- assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation);
- assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(pipingCalculation);
- assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation);
- assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(grassCoverErosionInwardsCalculation);
- assessmentSection.HeightStructures.CalculationsGroup.Children.Add(emptyHeightStructuresCalculation);
- assessmentSection.HeightStructures.CalculationsGroup.Children.Add(heightStructuresCalculation);
-
- FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution;
-
- MockRepository mockRepository = new MockRepository();
- IObserver observerMock = mockRepository.StrictMock();
- observerMock.Expect(o => o.UpdateObserver());
-
- IObserver pipingCalculationObserver = mockRepository.StrictMock();
- pipingCalculationObserver.Expect(o => o.UpdateObserver());
- IObserver grassCoverErosionInwardsCalculationObserver = mockRepository.StrictMock();
- grassCoverErosionInwardsCalculationObserver.Expect(o => o.UpdateObserver());
- IObserver heightStructuresCalculationObserver = mockRepository.StrictMock();
- heightStructuresCalculationObserver.Expect(o => o.UpdateObserver());
- IObserver emptyPipingCalculationObserver = mockRepository.StrictMock();
- IObserver emptyGrassCoverErosionInwardsCalculationObserver = mockRepository.StrictMock();
- IObserver emptyHeightStructuresCalculationObserver = mockRepository.StrictMock();
-
- IObserver hydraulicBoundaryDatabaseObserver = mockRepository.StrictMock(); // No update observer expected.
-
- var viewCommands = mockRepository.Stub();
- mockRepository.ReplayAll();
-
- failureMechanismContribution.Attach(observerMock);
- hydraulicBoundaryDatabase.Attach(hydraulicBoundaryDatabaseObserver);
-
- emptyPipingCalculation.Attach(emptyPipingCalculationObserver);
- emptyGrassCoverErosionInwardsCalculation.Attach(emptyGrassCoverErosionInwardsCalculationObserver);
- emptyHeightStructuresCalculation.Attach(emptyHeightStructuresCalculationObserver);
-
- pipingCalculation.Attach(pipingCalculationObserver);
- grassCoverErosionInwardsCalculation.Attach(grassCoverErosionInwardsCalculationObserver);
- heightStructuresCalculation.Attach(heightStructuresCalculationObserver);
-
- var normChangeHandler = new FailureMechanismContributionNormChangeHandler();
- var compositionChangeHandler = new AssessmentSectionCompositionChangeHandler();
-
- using (Form form = new Form())
- using (FailureMechanismContributionView distributionView = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
- {
- Data = failureMechanismContribution,
- AssessmentSection = assessmentSection
- })
- {
- form.Controls.Add(distributionView);
- form.Show();
-
- ControlTester returnPeriodTester = new ControlTester(returnPeriodInputTextBoxName);
-
- // Precondition
- int originalReturnPeriodValue = Convert.ToInt32(1.0/failureMechanismContribution.Norm);
- Assert.AreEqual(originalReturnPeriodValue.ToString(CultureInfo.CurrentCulture), returnPeriodTester.Text);
- Assert.IsNotNull(pipingCalculation.Output);
- Assert.IsNotNull(pipingCalculation.SemiProbabilisticOutput);
- Assert.IsNotNull(grassCoverErosionInwardsCalculation.Output);
- Assert.IsNotNull(heightStructuresCalculation.Output);
-
- DialogBoxHandler = (name, wnd) =>
- {
- var dialogTester = new MessageBoxTester(wnd);
- dialogTester.ClickOk();
- };
-
- // Call
- Action call = () => SimulateUserCommittingReturnPeriodValue(returnPeriodTester, newReturnPeriod);
-
- // Assert
- string expectedMessage = string.Format(messageCalculationsremoved,
- numberOfCalculations);
- TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1);
-
- Assert.AreEqual(1.0/newReturnPeriod, failureMechanismContribution.Norm);
- Assert.IsNull(pipingCalculation.Output);
- Assert.IsNull(pipingCalculation.SemiProbabilisticOutput);
- Assert.IsNull(grassCoverErosionInwardsCalculation.Output);
- Assert.IsNull(heightStructuresCalculation.Output);
- }
- mockRepository.VerifyAll();
- }
-
- [Test]
- public void ReturnPeriodTextBox_NoHydraulicBoundaryLocationNoOutputAndCalculationWithOutputAndValueChanged_CalculationObserverNotifiedAndMessageLogged()
- {
- // Setup
- const int newReturnPeriod = 200;
- const int numberOfCalculations = 3;
-
- AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
-
- PipingCalculation emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput());
- PipingCalculation pipingCalculation = new PipingCalculation(new GeneralPipingInput())
- {
- Output = new TestPipingOutput(),
- SemiProbabilisticOutput = new TestPipingSemiProbabilisticOutput()
- };
- GrassCoverErosionInwardsCalculation emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation();
- GrassCoverErosionInwardsCalculation grassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation
- {
- Output = new GrassCoverErosionInwardsOutput(0, false, new ProbabilityAssessmentOutput(0, 0, 0, 0, 0),
- new TestDikeHeightAssessmentOutput(0))
- };
- var emptyHeightStructuresCalculation = new StructuresCalculation();
- var heightStructuresCalculation = new StructuresCalculation
- {
- Output = new ProbabilityAssessmentOutput(0, 0, 0, 0, 0)
- };
-
- assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation);
- assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(pipingCalculation);
- assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation);
- assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(grassCoverErosionInwardsCalculation);
- assessmentSection.HeightStructures.CalculationsGroup.Children.Add(emptyHeightStructuresCalculation);
- assessmentSection.HeightStructures.CalculationsGroup.Children.Add(heightStructuresCalculation);
-
- FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution;
-
- MockRepository mockRepository = new MockRepository();
- IObserver observerMock = mockRepository.StrictMock();
- observerMock.Expect(o => o.UpdateObserver());
-
- IObserver pipingCalculationObserver = mockRepository.StrictMock();
- pipingCalculationObserver.Expect(o => o.UpdateObserver());
- IObserver grassCoverErosionInwardsCalculationObserver = mockRepository.StrictMock();
- grassCoverErosionInwardsCalculationObserver.Expect(o => o.UpdateObserver());
- IObserver heightStructuresCalculationObserver = mockRepository.StrictMock();
- heightStructuresCalculationObserver.Expect(o => o.UpdateObserver());
- IObserver emptyPipingCalculationObserver = mockRepository.StrictMock();
- IObserver emptyGrassCoverErosionInwardsCalculationObserver = mockRepository.StrictMock();
- IObserver emptyHeightStructuresCalculationObserver = mockRepository.StrictMock();
-
- var viewCommands = mockRepository.Stub();
- mockRepository.ReplayAll();
-
- failureMechanismContribution.Attach(observerMock);
-
- emptyPipingCalculation.Attach(emptyPipingCalculationObserver);
- emptyGrassCoverErosionInwardsCalculation.Attach(emptyGrassCoverErosionInwardsCalculationObserver);
- emptyHeightStructuresCalculation.Attach(emptyHeightStructuresCalculationObserver);
-
- pipingCalculation.Attach(pipingCalculationObserver);
- grassCoverErosionInwardsCalculation.Attach(grassCoverErosionInwardsCalculationObserver);
- heightStructuresCalculation.Attach(heightStructuresCalculationObserver);
-
- var normChangeHandler = new FailureMechanismContributionNormChangeHandler();
- var compositionChangeHandler = new AssessmentSectionCompositionChangeHandler();
-
- using (Form form = new Form())
- using (FailureMechanismContributionView distributionView = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
- {
- Data = failureMechanismContribution,
- AssessmentSection = assessmentSection
- })
- {
- form.Controls.Add(distributionView);
- form.Show();
-
- ControlTester returnPeriodTester = new ControlTester(returnPeriodInputTextBoxName);
-
- // Precondition
- int originalReturnPeriodValue = Convert.ToInt32(1.0/failureMechanismContribution.Norm);
- Assert.AreEqual(originalReturnPeriodValue.ToString(), returnPeriodTester.Text);
- Assert.IsNotNull(pipingCalculation.Output);
- Assert.IsNotNull(pipingCalculation.SemiProbabilisticOutput);
- Assert.IsNotNull(grassCoverErosionInwardsCalculation.Output);
- Assert.IsNotNull(heightStructuresCalculation.Output);
-
- DialogBoxHandler = (name, wnd) =>
- {
- var dialogTester = new MessageBoxTester(wnd);
- dialogTester.ClickOk();
- };
-
- // Call
- Action call = () => SimulateUserCommittingReturnPeriodValue(returnPeriodTester, newReturnPeriod);
-
- // Assert
- string expectedMessage = string.Format(messageCalculationsremoved,
- numberOfCalculations);
- TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1);
-
- Assert.AreEqual(1.0/newReturnPeriod, failureMechanismContribution.Norm);
- Assert.IsNull(pipingCalculation.Output);
- Assert.IsNull(pipingCalculation.SemiProbabilisticOutput);
- Assert.IsNull(grassCoverErosionInwardsCalculation.Output);
- Assert.IsNull(heightStructuresCalculation.Output);
- }
- mockRepository.VerifyAll();
- }
-
- [Test]
- public void ReturnPeriodTextBox_HydraulicBoundaryLocationNoOutputAndNoCalculationsWithOutputAndValueChanged_NoObserversNotifiedAndMessagesLogged()
- {
- // Setup
- const int newReturnPeriod = 200;
-
- HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
- hydraulicBoundaryDatabase.Locations.Add(new TestHydraulicBoundaryLocation());
-
- AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike)
- {
- HydraulicBoundaryDatabase = hydraulicBoundaryDatabase
- };
-
- PipingCalculation emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput());
- GrassCoverErosionInwardsCalculation emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation();
- var emptyHeightStructuresCalculation = new StructuresCalculation();
-
- assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation);
- assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation);
- assessmentSection.HeightStructures.CalculationsGroup.Children.Add(emptyHeightStructuresCalculation);
-
- FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution;
-
- MockRepository mockRepository = new MockRepository();
- IObserver observerMock = mockRepository.StrictMock();
- observerMock.Expect(o => o.UpdateObserver());
- IObserver calculationObserver = mockRepository.StrictMock();
- IObserver hydraulicBoundaryDatabaseObserver = mockRepository.StrictMock();
-
- var viewCommands = mockRepository.Stub();
- mockRepository.ReplayAll();
-
- failureMechanismContribution.Attach(observerMock);
- emptyPipingCalculation.Attach(calculationObserver);
- emptyGrassCoverErosionInwardsCalculation.Attach(calculationObserver);
- emptyHeightStructuresCalculation.Attach(calculationObserver);
- hydraulicBoundaryDatabase.Attach(hydraulicBoundaryDatabaseObserver);
-
- var normChangeHandler = new FailureMechanismContributionNormChangeHandler();
- var compositionChangeHandler = new AssessmentSectionCompositionChangeHandler();
-
- using (Form form = new Form())
- using (FailureMechanismContributionView distributionView = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
- {
- Data = failureMechanismContribution,
- AssessmentSection = assessmentSection
- })
- {
- form.Controls.Add(distributionView);
- form.Show();
-
- ControlTester normTester = new ControlTester(returnPeriodInputTextBoxName);
-
- // Precondition
- int originalReturnPeriodValue = Convert.ToInt32(1.0/failureMechanismContribution.Norm);
- Assert.AreEqual(originalReturnPeriodValue.ToString(CultureInfo.CurrentCulture), normTester.Text);
-
- DialogBoxHandler = (name, wnd) =>
- {
- var dialogTester = new MessageBoxTester(wnd);
- dialogTester.ClickOk();
- };
-
- // Call
- Action call = () => SimulateUserCommittingReturnPeriodValue(normTester, newReturnPeriod);
-
- // Assert
- TestHelper.AssertLogMessagesCount(call, 0);
- Assert.AreEqual(1.0/newReturnPeriod, failureMechanismContribution.Norm);
- }
- mockRepository.VerifyAll(); // No update observer expected.
- }
-
- [Test]
- public void ReturnPeriodTextBox_NoHydraulicBoundaryDatabaseAndNoCalculationsWithOutputAndValueChanged_NoObserversNotifiedAndMessagesLogged()
- {
- // Setup
- const int newReturnPeriod = 200;
-
- AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
-
- PipingCalculation emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput());
- GrassCoverErosionInwardsCalculation emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation();
- var emptyHeightStructuresCalculation = new StructuresCalculation();
-
- assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation);
- assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation);
- assessmentSection.HeightStructures.CalculationsGroup.Children.Add(emptyHeightStructuresCalculation);
-
- FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution;
-
- MockRepository mockRepository = new MockRepository();
- IObserver observerMock = mockRepository.StrictMock();
- observerMock.Expect(o => o.UpdateObserver());
- IObserver calculationObserver = mockRepository.StrictMock();
-
- var viewCommands = mockRepository.Stub();
- mockRepository.ReplayAll();
-
- failureMechanismContribution.Attach(observerMock);
- emptyPipingCalculation.Attach(calculationObserver);
- emptyGrassCoverErosionInwardsCalculation.Attach(calculationObserver);
- emptyHeightStructuresCalculation.Attach(calculationObserver);
-
- var normChangeHandler = new FailureMechanismContributionNormChangeHandler();
- var compositionChangeHandler = new AssessmentSectionCompositionChangeHandler();
-
- using (Form form = new Form())
- using (FailureMechanismContributionView distributionView = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
- {
- Data = failureMechanismContribution,
- AssessmentSection = assessmentSection
- })
- {
- form.Controls.Add(distributionView);
- form.Show();
-
- ControlTester returnPeriodTester = new ControlTester(returnPeriodInputTextBoxName);
-
- // Precondition
- int originalReturnPeriodValue = Convert.ToInt32(1.0/failureMechanismContribution.Norm);
- Assert.AreEqual(originalReturnPeriodValue.ToString(), returnPeriodTester.Text);
-
- DialogBoxHandler = (name, wnd) =>
- {
- var dialogTester = new MessageBoxTester(wnd);
- dialogTester.ClickOk();
- };
-
- // Call
- Action call = () => SimulateUserCommittingReturnPeriodValue(returnPeriodTester, newReturnPeriod);
-
- // Assert
- TestHelper.AssertLogMessagesCount(call, 0);
- Assert.AreEqual(1.0/newReturnPeriod, failureMechanismContribution.Norm);
- }
- mockRepository.VerifyAll(); // No update observer expected.
- }
-
- [Test]
[TestCase(AssessmentSectionComposition.Dike, AssessmentSectionComposition.Dune)]
[TestCase(AssessmentSectionComposition.Dike, AssessmentSectionComposition.DikeAndDune)]
[TestCase(AssessmentSectionComposition.Dune, AssessmentSectionComposition.Dike)]
[TestCase(AssessmentSectionComposition.Dune, AssessmentSectionComposition.DikeAndDune)]
[TestCase(AssessmentSectionComposition.DikeAndDune, AssessmentSectionComposition.Dike)]
[TestCase(AssessmentSectionComposition.DikeAndDune, AssessmentSectionComposition.Dune)]
- public void GivenViewWithAssessmentSection_WhenChangingCompositionComboBoxAndOk_ThenUpdateAssessmentSectionContributionAndView(
+ public void GivenViewWithAssessmentSection_WhenChangingCompositionAndNotify_ThenUpdateAssessmentSectionContributionAndView(
AssessmentSectionComposition initialComposition,
AssessmentSectionComposition newComposition)
{
@@ -688,11 +62,8 @@
var assessmentSection = new AssessmentSection(initialComposition);
- var normChangeHandler = new FailureMechanismContributionNormChangeHandler();
- var compositionChangeHandler = new AssessmentSectionCompositionChangeHandler();
-
using (var form = new Form())
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
+ using (var view = new FailureMechanismContributionView(viewCommands)
{
Data = assessmentSection.FailureMechanismContribution,
AssessmentSection = assessmentSection
@@ -705,20 +76,15 @@
Assert.AreNotEqual(assessmentSection.Composition, newComposition);
bool dataGridInvalidated = false;
- var contributionGridView = (DataGridView) new ControlTester(dataGridViewControlName).TheObject;
+ var contributionGridView = (DataGridView)new ControlTester(dataGridViewControlName).TheObject;
contributionGridView.Invalidated += (sender, args) => dataGridInvalidated = true;
- var compositionComboBox = (ComboBox) new ControlTester(assessmentSectionCompositionComboBoxName).TheObject;
-
// When
- DialogBoxHandler = (name, wnd) =>
- {
- var tester = new MessageBoxTester(wnd);
- tester.ClickOk();
- };
- ControlsTestHelper.FakeUserSelectingNewValue(compositionComboBox, newComposition);
+ assessmentSection.ChangeComposition(newComposition);
+ assessmentSection.FailureMechanismContribution.NotifyObservers();
// Then
+ var compositionComboBox = (ComboBox)new ControlTester(assessmentSectionCompositionComboBoxName).TheObject;
Assert.AreEqual(newComposition, compositionComboBox.SelectedValue);
Assert.IsTrue(dataGridInvalidated,
@@ -743,17 +109,5 @@
Assert.AreEqual(expectedElement.ProbabilitySpace, row.Cells[probabilitySpaceColumnIndex].Value);
}
}
-
- private static void SimulateUserCommittingReturnPeriodValue(ControlTester returnPeriodTester, int returnPeriod)
- {
- var returnPeriodInput = (NumericUpDown) returnPeriodTester.TheObject;
- returnPeriodInput.Value = returnPeriod;
- var eventArgs = new CancelEventArgs();
- EventHelper.RaiseEvent(returnPeriodTester.TheObject, "Validating", eventArgs);
- if (!eventArgs.Cancel)
- {
- returnPeriodTester.FireEvent("Validated");
- }
- }
}
-}
\ No newline at end of file
+}
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj
===================================================================
diff -u -rd56bec747401ad6676fac64af5eef6d5fd89c47c -r65eb603f0c22966e05487433a9deb80e3041fc47
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj (.../Ringtoets.Integration.Forms.Test.csproj) (revision d56bec747401ad6676fac64af5eef6d5fd89c47c)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj (.../Ringtoets.Integration.Forms.Test.csproj) (revision 65eb603f0c22966e05487433a9deb80e3041fc47)
@@ -72,7 +72,7 @@
-
+
@@ -125,6 +125,7 @@
+
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs
===================================================================
diff -u -r4fda2f3f6be17051ed305f0ea2d1b15fa87fc55f -r65eb603f0c22966e05487433a9deb80e3041fc47
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs (.../FailureMechanismContributionViewTest.cs) (revision 4fda2f3f6be17051ed305f0ea2d1b15fa87fc55f)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs (.../FailureMechanismContributionViewTest.cs) (revision 65eb603f0c22966e05487433a9deb80e3041fc47)
@@ -21,15 +21,13 @@
using System;
using System.Collections.Generic;
-using System.ComponentModel;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Windows.Forms;
using Core.Common.Base;
using Core.Common.Controls.DataGrid;
using Core.Common.Gui.Commands;
-using Core.Common.TestUtil;
using NUnit.Extensions.Forms;
using NUnit.Framework;
using Rhino.Mocks;
@@ -71,54 +69,14 @@
}
[Test]
- public void Constructor_NormChangeHandlerNull_ThrowArgumentNullException()
- {
- // Setup
- var mocks = new MockRepository();
- var compositionChangeHandler = mocks.Stub();
- var viewCommands = mocks.Stub();
- mocks.ReplayAll();
-
- // Call
- TestDelegate call = () => new FailureMechanismContributionView(null, compositionChangeHandler, viewCommands);
-
- // Assert
- string paramName = Assert.Throws(call).ParamName;
- Assert.AreEqual("normChangeHandler", paramName);
-
- mocks.VerifyAll();
- }
-
- [Test]
- public void Constructor_CompositionChangeHandlerNull_ThrowArgumentNullException()
- {
- // Setup
- var mocks = new MockRepository();
- var normChangeHandler = mocks.Stub();
- var viewCommands = mocks.Stub();
- mocks.ReplayAll();
-
- // Call
- TestDelegate call = () => new FailureMechanismContributionView(normChangeHandler, null, viewCommands);
-
- // Assert
- string paramName = Assert.Throws(call).ParamName;
- Assert.AreEqual("compositionChangeHandler", paramName);
-
- mocks.VerifyAll();
- }
-
- [Test]
public void Constructor_ViewCommandsNull_ThrowArgumentNullException()
{
// Setup
var mocks = new MockRepository();
- var normChangeHandler = mocks.Stub();
- var compositionChangeHandler = mocks.Stub();
mocks.ReplayAll();
// Call
- TestDelegate call = () => new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, null);
+ TestDelegate call = () => new FailureMechanismContributionView(null);
// Assert
string paramName = Assert.Throws(call).ParamName;
@@ -132,13 +90,11 @@
{
// Setup
var mocks = new MockRepository();
- var normChangeHandler = mocks.Stub();
- var compositionChangeHandler = mocks.Stub();
var viewCommands = mocks.Stub();
mocks.ReplayAll();
// Call
- using (var contributionView = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands))
+ using (var contributionView = new FailureMechanismContributionView(viewCommands))
{
ShowFormWithView(contributionView);
@@ -164,16 +120,14 @@
{
// Setup
var mocks = new MockRepository();
- var normChangeHandler = mocks.Stub();
- var compositionChangeHandler = mocks.Stub();
var viewCommands = mocks.Stub();
mocks.ReplayAll();
AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution;
// Call
- using (var contributionView = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
+ using (var contributionView = new FailureMechanismContributionView(viewCommands)
{
Data = failureMechanismContribution,
AssessmentSection = assessmentSection
@@ -196,105 +150,14 @@
}
[Test]
- public void ReturnPeriodTextBox_ValueChangedAndUserConfirmsChange_UpdatesDataWithNewValue()
- {
- // Setup
- const int returnPeriod = 200;
- const double norm = 1.0/returnPeriod;
-
- AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
- FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution;
- int initialReturnPeriod = Convert.ToInt32(1.0/failureMechanismContribution.Norm);
-
- MockRepository mockRepository = new MockRepository();
- var observable1 = mockRepository.StrictMock();
- observable1.Expect(o => o.NotifyObservers());
- var observable2 = mockRepository.StrictMock();
- observable2.Expect(o => o.NotifyObservers());
-
- var normChangeHandler = mockRepository.StrictMock();
- normChangeHandler.Expect(h => h.ConfirmNormChange()).Return(true);
- normChangeHandler.Expect(h => h.ChangeNorm(assessmentSection, norm))
- .Return(new[]
- {
- observable1,
- observable2
- });
- var compositionChangeHandler = mockRepository.Stub();
- var viewCommands = mockRepository.Stub();
- mockRepository.ReplayAll();
-
- using (FailureMechanismContributionView distributionView = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
- {
- Data = failureMechanismContribution,
- AssessmentSection = assessmentSection
- })
- {
- ShowFormWithView(distributionView);
- ControlTester returnPeriodTester = new ControlTester(returnPeriodInputTextBoxName);
-
- // Precondition
- Assert.AreEqual(initialReturnPeriod.ToString(CultureInfo.CurrentCulture), returnPeriodTester.Text);
-
- // Call
- SimulateUserCommittingReturnPeriodValue(returnPeriodTester, returnPeriod);
- }
- // Assert
- mockRepository.VerifyAll();
- }
-
- [Test]
- public void ReturnPeriodTextBox_ValueChangedAndUserDisallowsChange_NothingHappens()
- {
- // Setup
- const int newReturnPeriod = 200;
-
- AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
- FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution;
- int initialReturnPeriod = Convert.ToInt32(1.0/failureMechanismContribution.Norm);
-
- MockRepository mockRepository = new MockRepository();
- var normChangeHandler = mockRepository.StrictMock();
- normChangeHandler.Expect(h => h.ConfirmNormChange()).Return(false);
- normChangeHandler.Expect(h => h.ChangeNorm(assessmentSection, newReturnPeriod))
- .Return(Enumerable.Empty())
- .Repeat.Never();
- var compositionChangeHandler = mockRepository.Stub();
- var viewCommands = mockRepository.Stub();
- mockRepository.ReplayAll();
-
- using (FailureMechanismContributionView distributionView = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
- {
- Data = failureMechanismContribution,
- AssessmentSection = assessmentSection
- })
- {
- ShowFormWithView(distributionView);
- ControlTester returnPeriodTester = new ControlTester(returnPeriodInputTextBoxName);
-
- // Precondition
- Assert.AreEqual(initialReturnPeriod.ToString(CultureInfo.CurrentCulture), returnPeriodTester.Text);
-
- // Call
- SimulateUserCommittingReturnPeriodValue(returnPeriodTester, newReturnPeriod);
-
- // Assert
- Assert.AreEqual(initialReturnPeriod.ToString(CultureInfo.CurrentCulture), returnPeriodTester.Properties.Text);
- }
- mockRepository.VerifyAll();
- }
-
- [Test]
public void Data_Always_CorrectHeaders()
{
// Setup
var mocks = new MockRepository();
- var normChangeHandler = mocks.Stub();
- var compositionChangeHandler = mocks.Stub();
var viewCommands = mocks.Stub();
mocks.ReplayAll();
- using (var distributionView = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands))
+ using (var distributionView = new FailureMechanismContributionView(viewCommands))
{
// Call
ShowFormWithView(distributionView);
@@ -334,8 +197,6 @@
double testContribution = 100 - otherContribution;
var mockRepository = new MockRepository();
- var normChangeHandler = mockRepository.Stub();
- var compositionChangeHandler = mockRepository.Stub();
var viewCommands = mockRepository.Stub();
var someMechanism = mockRepository.StrictMock(testName, testCode);
@@ -348,7 +209,7 @@
someMechanism
}, otherContribution, 0.01);
- using (var distributionView = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
+ using (var distributionView = new FailureMechanismContributionView(viewCommands)
{
AssessmentSection = assessmentSection
})
@@ -387,8 +248,6 @@
var assessmentSection2 = new AssessmentSection(AssessmentSectionComposition.Dike);
var mockRepository = new MockRepository();
- var normChangeHandler = mockRepository.Stub();
- var compositionChangeHandler = mockRepository.Stub();
var viewCommands = mockRepository.Stub();
var someMechanism = mockRepository.Stub();
mockRepository.ReplayAll();
@@ -402,7 +261,7 @@
someMechanism
}, random.Next(0, 100), 1.0/newReturnPeriod);
- using (var distributionView = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
+ using (var distributionView = new FailureMechanismContributionView(viewCommands)
{
Data = initialContribution,
AssessmentSection = assessmentSection1
@@ -436,8 +295,6 @@
var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
var mockRepository = new MockRepository();
- var normChangeHandler = mockRepository.Stub();
- var compositionChangeHandler = mockRepository.Stub();
var viewCommands = mockRepository.Stub();
var someMechanism = mockRepository.Stub();
mockRepository.ReplayAll();
@@ -447,7 +304,7 @@
someMechanism
}, random.Next(0, 100), 1.0/initialReturnPeriod);
- using (var distributionView = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
+ using (var distributionView = new FailureMechanismContributionView(viewCommands)
{
Data = contribution,
AssessmentSection = assessmentSection
@@ -479,8 +336,6 @@
var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
var mockRepository = new MockRepository();
- var normChangeHandler = mockRepository.Stub();
- var compositionChangeHandler = mockRepository.Stub();
var viewCommands = mockRepository.Stub();
var failureMechanismStub = mockRepository.Stub();
failureMechanismStub.Stub(fm => fm.Name).Return("A");
@@ -489,7 +344,7 @@
failureMechanismStub.IsRelevant = isFailureMechanismRelevant;
mockRepository.ReplayAll();
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands))
+ using (var view = new FailureMechanismContributionView(viewCommands))
{
// When
var contributionData = new FailureMechanismContribution(new[]
@@ -518,16 +373,14 @@
var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
var mockRepository = new MockRepository();
- var normChangeHandler = mockRepository.Stub();
- var compositionChangeHandler = mockRepository.Stub();
var viewCommands = mockRepository.Stub();
var failureMechanismStub = mockRepository.Stub();
failureMechanismStub.Stub(fm => fm.Name).Return("A");
failureMechanismStub.Stub(fm => fm.Code).Return("C");
failureMechanismStub.Contribution = 0;
mockRepository.ReplayAll();
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands))
+ using (var view = new FailureMechanismContributionView(viewCommands))
{
// When
var contributionData = new FailureMechanismContribution(new[]
@@ -559,16 +412,14 @@
var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
var mockRepository = new MockRepository();
- var normChangeHandler = mockRepository.Stub();
- var compositionChangeHandler = mockRepository.Stub();
var viewCommands = mockRepository.Stub();
var failureMechanismStub = mockRepository.Stub();
failureMechanismStub.Stub(fm => fm.Name).Return("A");
failureMechanismStub.Stub(fm => fm.Code).Return("C");
failureMechanismStub.Contribution = contribution;
mockRepository.ReplayAll();
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands))
+ using (var view = new FailureMechanismContributionView(viewCommands))
{
// When
var contributionData = new FailureMechanismContribution(new[]
@@ -602,12 +453,10 @@
{
// Setup
var mocks = new MockRepository();
- var normChangeHandler = mocks.Stub();
- var compositionChangeHandler = mocks.Stub();
var viewCommands = mocks.Stub();
mocks.ReplayAll();
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands))
+ using (var view = new FailureMechanismContributionView(viewCommands))
{
ShowFormWithView(view);
@@ -633,31 +482,18 @@
[TestCase(AssessmentSectionComposition.Dune, AssessmentSectionComposition.DikeAndDune)]
[TestCase(AssessmentSectionComposition.DikeAndDune, AssessmentSectionComposition.Dike)]
[TestCase(AssessmentSectionComposition.DikeAndDune, AssessmentSectionComposition.Dune)]
- public void CompositionComboBox_ChangeCompositionAndOk_ChangeCompositionAndNotifyAffectedObjects(AssessmentSectionComposition initialComposition, AssessmentSectionComposition newComposition)
+ public void UpdateObserver_ChangeAssessmentSectionCompositionAndNotify_ChangeCompositionComboBoxItem(
+ AssessmentSectionComposition initialComposition,
+ AssessmentSectionComposition newComposition)
{
- // Setup
+ // Given
var assessmentSection = new AssessmentSection(initialComposition);
var mocks = new MockRepository();
- var observable1 = mocks.StrictMock();
- observable1.Expect(o => o.NotifyObservers());
- var observable2 = mocks.StrictMock();
- observable2.Expect(o => o.NotifyObservers());
-
- var normChangeHandler = mocks.Stub();
- var compositionChangeHandler = mocks.StrictMock();
- compositionChangeHandler.Expect(h => h.ConfirmCompositionChange())
- .Return(true);
- compositionChangeHandler.Expect(h => h.ChangeComposition(assessmentSection, newComposition))
- .Return(new[]
- {
- observable1,
- observable2
- });
var viewCommands = mocks.Stub();
mocks.ReplayAll();
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
+ using (var view = new FailureMechanismContributionView(viewCommands)
{
Data = assessmentSection.FailureMechanismContribution,
AssessmentSection = assessmentSection
@@ -668,77 +504,28 @@
// Precondition
Assert.AreNotEqual(assessmentSection.Composition, newComposition);
- var compositionComboBox = (ComboBox) new ControlTester(assessmentSectionCompositionComboBoxName).TheObject;
-
// Call
- ControlsTestHelper.FakeUserSelectingNewValue(compositionComboBox, newComposition);
+ assessmentSection.ChangeComposition(newComposition);
+ assessmentSection.FailureMechanismContribution.NotifyObservers();
// Assert
+ var compositionComboBox = (ComboBox) new ControlTester(assessmentSectionCompositionComboBoxName).TheObject;
Assert.AreEqual(newComposition, compositionComboBox.SelectedValue);
}
mocks.VerifyAll();
}
[Test]
- [TestCase(AssessmentSectionComposition.Dike, AssessmentSectionComposition.Dune)]
- [TestCase(AssessmentSectionComposition.Dike, AssessmentSectionComposition.DikeAndDune)]
- [TestCase(AssessmentSectionComposition.Dune, AssessmentSectionComposition.Dike)]
- [TestCase(AssessmentSectionComposition.Dune, AssessmentSectionComposition.DikeAndDune)]
- [TestCase(AssessmentSectionComposition.DikeAndDune, AssessmentSectionComposition.Dike)]
- [TestCase(AssessmentSectionComposition.DikeAndDune, AssessmentSectionComposition.Dune)]
- public void CompositionComboBox_ChangeCompositionAndCancel_ComboBoxStillAtOriginalValue(AssessmentSectionComposition initialComposition, AssessmentSectionComposition newComposition)
- {
- // Setup
- var assessmentSection = new AssessmentSection(initialComposition);
-
- var mocks = new MockRepository();
- var normChangeHandler = mocks.Stub();
- var compositionChangeHandler = mocks.StrictMock();
- compositionChangeHandler.Expect(h => h.ConfirmCompositionChange())
- .Return(false);
- compositionChangeHandler.Expect(h => h.ChangeComposition(null, AssessmentSectionComposition.Dike))
- .IgnoreArguments()
- .Return(new IObservable[0])
- .Repeat.Never();
- var viewCommands = mocks.Stub();
- mocks.ReplayAll();
-
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
- {
- Data = assessmentSection.FailureMechanismContribution,
- AssessmentSection = assessmentSection
- })
- {
- ShowFormWithView(view);
-
- // Precondition
- Assert.AreNotEqual(assessmentSection.Composition, newComposition);
-
- var compositionComboBox = (ComboBox) new ControlTester(assessmentSectionCompositionComboBoxName).TheObject;
-
- // Call
- ControlsTestHelper.FakeUserSelectingNewValue(compositionComboBox, newComposition);
-
- // Assert
- Assert.AreEqual(initialComposition, compositionComboBox.SelectedValue,
- "The ComboBox should be reset to the original composition value, as change was not accepted by user.");
- }
- mocks.VerifyAll();
- }
-
- [Test]
public void GivenView_WhenSettingRelevantFailureMechanism_RowIsStylesAsEnabled()
{
// Given
var mocks = new MockRepository();
- var normChangeHandler = mocks.Stub();
- var compositionChangeHandler = mocks.Stub();
var viewCommands = mocks.Stub();
var failureMechanism = mocks.Stub();
failureMechanism.IsRelevant = true;
mocks.ReplayAll();
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands))
+ using (var view = new FailureMechanismContributionView(viewCommands))
{
ShowFormWithView(view);
@@ -775,14 +562,12 @@
{
// Given
var mocks = new MockRepository();
- var normChangeHandler = mocks.Stub();
- var compositionChangeHandler = mocks.Stub();
var viewCommands = mocks.Stub();
var failureMechanism = mocks.Stub();
failureMechanism.IsRelevant = false;
mocks.ReplayAll();
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands))
+ using (var view = new FailureMechanismContributionView(viewCommands))
{
ShowFormWithView(view);
@@ -822,8 +607,6 @@
// Given
List failureMechanismObservers = new List();
var mocks = new MockRepository();
- var normChangeHandler = mocks.Stub();
- var compositionChangeHandler = mocks.Stub();
var viewCommands = mocks.Stub();
var failureMechanism = mocks.Stub();
failureMechanism.Stub(fm => fm.Name).Return("A");
@@ -848,7 +631,7 @@
assessmentSection.Stub(section => section.Composition).Return(AssessmentSectionComposition.Dike);
mocks.ReplayAll();
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands))
+ using (var view = new FailureMechanismContributionView(viewCommands))
{
ShowFormWithView(view);
@@ -905,8 +688,6 @@
{
// Given
var mocks = new MockRepository();
- var normChangeHandler = mocks.Stub();
- var compositionChangeHandler = mocks.Stub();
var failureMechanism = mocks.Stub();
failureMechanism.Stub(fm => fm.Name).Return("A");
failureMechanism.Stub(fm => fm.Code).Return("b");
@@ -922,7 +703,7 @@
};
var contribution = new FailureMechanismContribution(failureMechanisms, 50.0, 1.0/30000);
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands))
+ using (var view = new FailureMechanismContributionView(viewCommands))
{
ShowFormWithView(view);
@@ -945,12 +726,10 @@
{
// Given
var mocks = new MockRepository();
- var normChangeHandler = mocks.Stub();
- var compositionChangeHandler = mocks.Stub();
var viewCommands = mocks.Stub();
mocks.ReplayAll();
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands))
+ using (var view = new FailureMechanismContributionView(viewCommands))
{
ShowFormWithView(view);
@@ -976,112 +755,6 @@
mocks.VerifyAll();
}
- [Test]
- public void GivenView_WhenEscapeAfterEnteringDifferentNormNotCommited_RevertNormAndNoChangedToData()
- {
- // Given
- var mocks = new MockRepository();
- var normChangeHandler = mocks.Stub();
- normChangeHandler.Stub(h => h.ChangeNorm(null, 1))
- .IgnoreArguments()
- .Return(Enumerable.Empty());
- var compositionChangeHandler = mocks.Stub();
- var viewCommands = mocks.Stub();
- mocks.ReplayAll();
-
- AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
- FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution;
-
- const int returnPeriod = 200;
- int originalReturnPeriodValue = Convert.ToInt32(1.0/failureMechanismContribution.Norm);
-
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
- {
- Data = failureMechanismContribution,
- AssessmentSection = assessmentSection
- })
- {
- ShowFormWithView(view);
- ControlTester normTester = new ControlTester(returnPeriodInputTextBoxName);
-
- // When
- var normInput = (NumericUpDown) normTester.TheObject;
- view.ActiveControl = normInput;
- normInput.Value = returnPeriod;
- var keyEventArgs = new KeyEventArgs(Keys.Escape);
- EventHelper.RaiseEvent(normInput.Controls.OfType().First(), "KeyDown", keyEventArgs);
-
- // Then
- Assert.IsTrue(keyEventArgs.Handled);
- Assert.IsTrue(keyEventArgs.SuppressKeyPress);
-
- Assert.AreEqual(originalReturnPeriodValue, normInput.Value);
- Assert.AreEqual(originalReturnPeriodValue, normInput.Value);
- Assert.AreNotSame(normInput, view.ActiveControl);
- }
- mocks.VerifyAll();
- }
-
- [Test]
- public void GivenView_WhenEnterAfterEnteringDifferentReturnPeriodNotCommitted_CommitValueAndChangeData()
- {
- // Given
- const int returnPeriod = 200;
- const double norm = 1.0/returnPeriod;
-
- AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
- FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution;
-
- var mocks = new MockRepository();
- var normChangeHandler = mocks.StrictMock();
- normChangeHandler.Expect(h => h.ConfirmNormChange())
- .Return(true);
- normChangeHandler.Expect(h => h.ChangeNorm(assessmentSection, norm))
- .Return(Enumerable.Empty());
- var compositionChangeHandler = mocks.Stub();
- compositionChangeHandler.Stub(h => h.ConfirmCompositionChange())
- .Return(false);
- var viewCommands = mocks.Stub();
- mocks.ReplayAll();
-
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
- {
- Data = failureMechanismContribution,
- AssessmentSection = assessmentSection
- })
- {
- ShowFormWithView(view);
- ControlTester normTester = new ControlTester(returnPeriodInputTextBoxName);
-
- // When
- var returnPeriodInput = (NumericUpDown) normTester.TheObject;
- view.ActiveControl = returnPeriodInput;
- returnPeriodInput.Value = returnPeriod;
- var keyEventArgs = new KeyEventArgs(Keys.Enter);
- EventHelper.RaiseEvent(returnPeriodInput.Controls.OfType().First(), "KeyDown", keyEventArgs);
-
- // Then
- Assert.IsTrue(keyEventArgs.Handled);
- Assert.IsTrue(keyEventArgs.SuppressKeyPress);
-
- Assert.AreEqual(returnPeriod, returnPeriodInput.Value);
- Assert.AreNotSame(returnPeriodInput, view.ActiveControl);
- }
- mocks.VerifyAll();
- }
-
- private static void SimulateUserCommittingReturnPeriodValue(ControlTester returnPeriodTester, int returnPeriod)
- {
- var returnPeriodInput = (NumericUpDown) returnPeriodTester.TheObject;
- returnPeriodInput.Value = returnPeriod;
- var eventArgs = new CancelEventArgs();
- EventHelper.RaiseEvent(returnPeriodTester.TheObject, "Validating", eventArgs);
- if (!eventArgs.Cancel)
- {
- returnPeriodTester.FireEvent("Validated");
- }
- }
-
private void ShowFormWithView(FailureMechanismContributionView distributionView)
{
testForm.Controls.Add(distributionView);
Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/ViewInfos/FailureMechanismContributionViewInfoTest.cs
===================================================================
diff -u -r4fda2f3f6be17051ed305f0ea2d1b15fa87fc55f -r65eb603f0c22966e05487433a9deb80e3041fc47
--- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/ViewInfos/FailureMechanismContributionViewInfoTest.cs (.../FailureMechanismContributionViewInfoTest.cs) (revision 4fda2f3f6be17051ed305f0ea2d1b15fa87fc55f)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/ViewInfos/FailureMechanismContributionViewInfoTest.cs (.../FailureMechanismContributionViewInfoTest.cs) (revision 65eb603f0c22966e05487433a9deb80e3041fc47)
@@ -60,13 +60,11 @@
public void GetViewName_Always_ReturnsViewName()
{
// Setup
- var normChangeHandler = mocks.Stub();
- var compositionChangeHandler = mocks.Stub();
var viewCommands = mocks.Stub();
IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStubWithoutBoundaryDatabaseOrFailureMechanisms(mocks);
mocks.ReplayAll();
- var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands);
+ var view = new FailureMechanismContributionView(viewCommands);
// Call
var viewName = info.GetViewName(view, assessmentSectionStub.FailureMechanismContribution);
@@ -137,16 +135,14 @@
public void CloseForData_ViewCorrespondingToRemovedAssessmentSection_ReturnsTrue()
{
// Setup
- var normChangeHandler = mocks.Stub();
- var compositionChangeHandler = mocks.Stub();
var viewCommands = mocks.Stub();
IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStubWithoutBoundaryDatabaseOrFailureMechanisms(mocks);
assessmentSectionStub.Stub(section => section.Composition)
.Return(AssessmentSectionComposition.Dike);
mocks.ReplayAll();
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
+ using (var view = new FailureMechanismContributionView(viewCommands)
{
Data = assessmentSectionStub.FailureMechanismContribution,
AssessmentSection = assessmentSectionStub
@@ -165,8 +161,6 @@
public void CloseForData_ViewNotCorrespondingToRemovedAssessmentSection_ReturnsFalse()
{
// Setup
- var normChangeHandler = mocks.Stub();
- var compositionChangeHandler = mocks.Stub();
var viewCommands = mocks.Stub();
IAssessmentSection assessmentSection1 = AssessmentSectionHelper.CreateAssessmentSectionStubWithoutBoundaryDatabaseOrFailureMechanisms(mocks);
@@ -178,7 +172,7 @@
.Return(AssessmentSectionComposition.DikeAndDune);
mocks.ReplayAll();
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands)
+ using (var view = new FailureMechanismContributionView(viewCommands)
{
Data = assessmentSection1.FailureMechanismContribution,
AssessmentSection = assessmentSection1
@@ -198,14 +192,12 @@
public void CloseForData_ViewWithoutData_ReturnsFalse()
{
// Setup
- var normChangeHandler = mocks.Stub();
- var compositionChangeHandler = mocks.Stub();
var viewCommands = mocks.Stub();
IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStubWithoutBoundaryDatabaseOrFailureMechanisms(mocks);
mocks.ReplayAll();
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands))
+ using (var view = new FailureMechanismContributionView(viewCommands))
{
// Call
var closeForData = info.CloseForData(view, assessmentSectionStub);
@@ -220,8 +212,6 @@
public void AfterCreate_WithGuiSet_SetsAssessmentSection()
{
// Setup
- var normChangeHandler = mocks.Stub();
- var compositionChangeHandler = mocks.Stub();
var viewCommands = mocks.Stub();
IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStubWithoutBoundaryDatabaseOrFailureMechanisms(mocks);
@@ -235,7 +225,7 @@
var context = new FailureMechanismContributionContext(assessmentSectionStub.FailureMechanismContribution, assessmentSectionStub);
- using (var view = new FailureMechanismContributionView(normChangeHandler, compositionChangeHandler, viewCommands))
+ using (var view = new FailureMechanismContributionView(viewCommands))
using (var ringtoetsPlugin = new RingtoetsPlugin())
{
info = ringtoetsPlugin.GetViewInfos().First(tni => tni.ViewType == typeof(FailureMechanismContributionView));