Index: Ringtoets/Common/src/Ringtoets.Common.Data/Contribution/FailureMechanismContribution.cs =================================================================== diff -u -r2c06b27dabc83beee23288eb5c6268847afa0a19 -ra8700b1afad48f78474132bf4745ba00a47df584 --- Ringtoets/Common/src/Ringtoets.Common.Data/Contribution/FailureMechanismContribution.cs (.../FailureMechanismContribution.cs) (revision 2c06b27dabc83beee23288eb5c6268847afa0a19) +++ Ringtoets/Common/src/Ringtoets.Common.Data/Contribution/FailureMechanismContribution.cs (.../FailureMechanismContribution.cs) (revision a8700b1afad48f78474132bf4745ba00a47df584) @@ -117,7 +117,7 @@ if (value < signalingNorm) { - throw new ArgumentOutOfRangeException(nameof(value), Resources.FailureMechanismContribution_SignalingNorm_should_be_same_or_smaller_than_LowerLimitNorm); + throw new ArgumentOutOfRangeException(nameof(value), Resources.FailureMechanismContribution_LowerLimitNorm_should_be_same_or_greater_than_SignalingNorm); } lowerLimitNorm = value; Index: Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.Designer.cs =================================================================== diff -u -r513400f1ec7b01dd0e4d3ce2681af3c1e8bf2e0e -ra8700b1afad48f78474132bf4745ba00a47df584 --- Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 513400f1ec7b01dd0e4d3ce2681af3c1e8bf2e0e) +++ Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision a8700b1afad48f78474132bf4745ba00a47df584) @@ -470,6 +470,16 @@ } /// + /// Looks up a localized string similar to De ondergrens moet gelijk of groter zijn dan de signaleringswaarde.. + /// + public static string FailureMechanismContribution_LowerLimitNorm_should_be_same_or_greater_than_SignalingNorm { + get { + return ResourceManager.GetString("FailureMechanismContribution_LowerLimitNorm_should_be_same_or_greater_than_Signal" + + "ingNorm", resourceCulture); + } + } + + /// /// Looks up a localized string similar to De signaleringswaarde moet gelijk of kleiner zijn dan de ondergrens.. /// public static string FailureMechanismContribution_SignalingNorm_should_be_same_or_smaller_than_LowerLimitNorm { Index: Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.resx =================================================================== diff -u -r513400f1ec7b01dd0e4d3ce2681af3c1e8bf2e0e -ra8700b1afad48f78474132bf4745ba00a47df584 --- Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.resx (.../Resources.resx) (revision 513400f1ec7b01dd0e4d3ce2681af3c1e8bf2e0e) +++ Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.resx (.../Resources.resx) (revision a8700b1afad48f78474132bf4745ba00a47df584) @@ -381,4 +381,7 @@ Stochastische ondergrondmodellen + + De ondergrens moet gelijk of groter zijn dan de signaleringswaarde. + \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/FailureMechanismContributionTest.cs =================================================================== diff -u -r2c06b27dabc83beee23288eb5c6268847afa0a19 -ra8700b1afad48f78474132bf4745ba00a47df584 --- Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/FailureMechanismContributionTest.cs (.../FailureMechanismContributionTest.cs) (revision 2c06b27dabc83beee23288eb5c6268847afa0a19) +++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/FailureMechanismContributionTest.cs (.../FailureMechanismContributionTest.cs) (revision a8700b1afad48f78474132bf4745ba00a47df584) @@ -396,7 +396,6 @@ mocks.VerifyAll(); } - [Test] public void SignalingNorm_WhenUpdatedAndNormativeNormNotSignaling_NormNotUpdatedForEachFailureMechanismContributionItem() { @@ -456,7 +455,7 @@ } [Test] - [TestCaseSource(nameof(GetInvalidValues), + [TestCaseSource(nameof(GetInvalidNormValues), new object[] { "Norm_WhenUpdated_NormUpdatedForEachFailureMechanismContributionItem" @@ -478,7 +477,7 @@ } [Test] - [TestCaseSource(nameof(GetInvalidValues), + [TestCaseSource(nameof(GetInvalidNormValues), new object[] { "SignalingNorm_InvalidNewNorm_ThrowsArgumentOutOfRangeException" @@ -527,11 +526,10 @@ TestDelegate test = () => failureMechanismContribution.LowerLimitNorm = 0.000001; // Assert - const string expectedMessage = "De signaleringswaarde moet gelijk of kleiner zijn dan de ondergrens."; + const string expectedMessage = "De ondergrens moet gelijk of groter zijn dan de signaleringswaarde."; TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, expectedMessage); } - [Test] [TestCase(NormType.Signaling, 0.01)] [TestCase(NormType.LowerLimit, 0.1)] @@ -552,7 +550,6 @@ // Assert Assert.AreEqual(expectedNorm, norm); - } private static void AssertFailureProbabilitySpace(double newOtherContribution, double norm, double probabilitySpace) @@ -561,7 +558,7 @@ Assert.AreEqual(expectedProbabilitySpace, probabilitySpace); } - private static IEnumerable GetInvalidValues(string name) + private static IEnumerable GetInvalidNormValues(string name) { yield return new TestCaseData(double.MaxValue) .SetName($"{name} maxValue"); @@ -570,9 +567,9 @@ yield return new TestCaseData(double.NaN) .SetName($"{name} NaN"); yield return new TestCaseData(0.1 + 1e-6) - .SetName($"{name} minimum boundary"); - yield return new TestCaseData(0.000001 - 1e-6) .SetName($"{name} maximum boundary"); + yield return new TestCaseData(0.000001 - 1e-6) + .SetName($"{name} minimum boundary"); } } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/SetPropertyValueAfterConfirmationParameterTesterTest.cs =================================================================== diff -u -rbcdabbbbd7fae323c339fdabc8bcb390962ccbcc -ra8700b1afad48f78474132bf4745ba00a47df584 --- Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/SetPropertyValueAfterConfirmationParameterTesterTest.cs (.../SetPropertyValueAfterConfirmationParameterTesterTest.cs) (revision bcdabbbbd7fae323c339fdabc8bcb390962ccbcc) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/SetPropertyValueAfterConfirmationParameterTesterTest.cs (.../SetPropertyValueAfterConfirmationParameterTesterTest.cs) (revision a8700b1afad48f78474132bf4745ba00a47df584) @@ -32,7 +32,7 @@ public class SetPropertyValueAfterConfirmationParameterTesterTest { [Test] - public void Constructructed_Always_PropertiesSet() + public void Constructor_Always_PropertiesSet() { // Setup IEnumerable returnedAffectedObjects = Enumerable.Empty(); Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/ReferenceLineMetaSelectionDialog.cs =================================================================== diff -u -r22314fc5cda60354caef8993c7da004d784e46c4 -ra8700b1afad48f78474132bf4745ba00a47df584 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/ReferenceLineMetaSelectionDialog.cs (.../ReferenceLineMetaSelectionDialog.cs) (revision 22314fc5cda60354caef8993c7da004d784e46c4) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/ReferenceLineMetaSelectionDialog.cs (.../ReferenceLineMetaSelectionDialog.cs) (revision a8700b1afad48f78474132bf4745ba00a47df584) @@ -64,17 +64,17 @@ public ReferenceLineMeta SelectedReferenceLineMeta { get; private set; } /// - /// Gets the lower limit norm value from the selected row in the and selected item in the . + /// Gets the lower limit norm value from the selected row in the . /// public double SelectedLowerLimitNorm { get; private set; } /// - /// Gets the signaling norm value from the selected row in the and selected item in the . + /// Gets the signaling norm value from the selected row in the . /// public double SelectedSignalingNorm { get; private set; } /// - /// Gets the norm type from the dialog. + /// Gets the norm type from the selected in the dialog. /// public NormType SelectedNormativeNorm { get; private set; } @@ -119,9 +119,9 @@ } } - private static double GetNormValue(int value) + private static double GetNormValue(int returnPeriod) { - return 1.0 / value; + return 1.0 / returnPeriod; } private ReferenceLineMetaSelectionRow GetSelectedReferenceLineMetaSelectionRow() Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Handlers/FailureMechanismContributionNormChangeHandler.cs =================================================================== diff -u -r5b300c761d0d8b3748f2ebacb051ff695293e4c6 -ra8700b1afad48f78474132bf4745ba00a47df584 --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Handlers/FailureMechanismContributionNormChangeHandler.cs (.../FailureMechanismContributionNormChangeHandler.cs) (revision 5b300c761d0d8b3748f2ebacb051ff695293e4c6) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Handlers/FailureMechanismContributionNormChangeHandler.cs (.../FailureMechanismContributionNormChangeHandler.cs) (revision a8700b1afad48f78474132bf4745ba00a47df584) @@ -48,7 +48,7 @@ /// /// Creates a new instance of . /// - /// The assessmentSection to change the contribution norm for. + /// The assessment section to change the contribution norm for. /// Thrown when /// is null. public FailureMechanismContributionNormChangeHandler(IAssessmentSection assessmentSection) Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PropertyClasses/FailureMechanismContributionPropertiesIntegrationTest.cs =================================================================== diff -u -r4d47d709e61dac47ba7b23d6bd14eab332180db7 -ra8700b1afad48f78474132bf4745ba00a47df584 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PropertyClasses/FailureMechanismContributionPropertiesIntegrationTest.cs (.../FailureMechanismContributionPropertiesIntegrationTest.cs) (revision 4d47d709e61dac47ba7b23d6bd14eab332180db7) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PropertyClasses/FailureMechanismContributionPropertiesIntegrationTest.cs (.../FailureMechanismContributionPropertiesIntegrationTest.cs) (revision a8700b1afad48f78474132bf4745ba00a47df584) @@ -29,6 +29,7 @@ using NUnit.Framework; using Rhino.Mocks; using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.Contribution; using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.Data.Structures; @@ -53,164 +54,10 @@ "Alle berekende resultaten voor alle hydraulische randvoorwaardenlocaties zijn verwijderd."; private const string messageCalculationsremoved = "De resultaten van {0} berekeningen zijn verwijderd."; + private const NormType newNormativeNorm = NormType.Signaling; private readonly string newLowerLimitNorm = 0.01.ToString(CultureInfo.CurrentCulture); private readonly string newSignalingNorm = 0.000001.ToString(CultureInfo.CurrentCulture); - private const NormType newNormativeNorm = NormType.Signaling; - #region AllDataAndOutputSet - - [Test] - public void LowerLimitNorm_ValueChanged_ClearsDependentDataAndNotifiesObserversAndLogsMessages() - { - SetPropertyAndVerifyNotifcationsAndOutputForAllDataSet(properties => properties.LowerLimitNorm = newLowerLimitNorm); - } - - [Test] - public void SignalingNorm_ValueChanged_ClearsDependentDataAndNotifiesObserversAndLogsMessages() - { - SetPropertyAndVerifyNotifcationsAndOutputForAllDataSet(properties => properties.SignalingNorm = newSignalingNorm); - } - - [Test] - public void NormativeNorm_ValueChanged_ClearsDependentDataAndNotifiesObserversAndLogsMessages() - { - SetPropertyAndVerifyNotifcationsAndOutputForAllDataSet(properties => properties.NormativeNorm = newNormativeNorm); - } - - #endregion - - #region NoPermissionGiven - - [Test] - public void LowerLimitNorm_PermissionNotGiven_DoesnotClearDependentDataNorNotifiesObserversAndLogsMessages() - { - ChangeValueNoPermissionGivenAndVerifyNoNotifcationsAndOutputForAllDataSet(properties => properties.LowerLimitNorm = newLowerLimitNorm); - } - - [Test] - public void SignalingNorm_PermissionNotGiven_DoesnotClearDependentDataNorNotifiesObserversAndLogsMessages() - { - ChangeValueNoPermissionGivenAndVerifyNoNotifcationsAndOutputForAllDataSet(properties => properties.SignalingNorm = newSignalingNorm); - } - - [Test] - public void NormativeNorm_PermissionNotGiven_DoesnotClearDependentDataNorNotifiesObserversAndLogsMessages() - { - ChangeValueNoPermissionGivenAndVerifyNoNotifcationsAndOutputForAllDataSet(properties => properties.NormativeNorm = newNormativeNorm); - } - - #endregion - - #region HydraulicBoundarySetAndCalculationsNoOutput - - [Test] - public void LowerLimitNorm_HydraulicBoundarySetAndCalculationsNoOutput_HydraulicBoundaryDatabaseObserversNotifiedAndMessagesLogged() - { - SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundarySetAndCalculationsNoOutput(properties => properties.LowerLimitNorm = newLowerLimitNorm); - } - - [Test] - public void SignalingNorm_HydraulicBoundarySetAndCalculationsNoOutput_HydraulicBoundaryDatabaseObserversNotifiedAndMessagesLogged() - { - SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundarySetAndCalculationsNoOutput(properties => properties.SignalingNorm = newSignalingNorm); - } - - [Test] - public void NormativeNorm_HydraulicBoundarySetAndCalculationsNoOutput_HydraulicBoundaryDatabaseObserversNotifiedAndMessagesLogged() - { - SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundarySetAndCalculationsNoOutput(properties => properties.NormativeNorm = newNormativeNorm); - } - - #endregion - - #region HydraulicBoundaryLocationNoOutputAndCalculationWithOutput - - [Test] - public void LowerLimitNorm_HydraulicBoundaryLocationNoOutputAndCalculationWithOutputAndValueChanged_CalculationObserverNotifiedAndMessageLogged() - { - SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundaryLocationNoOutputAndCalculationWithOutput(properties => properties.LowerLimitNorm = newLowerLimitNorm); - } - - [Test] - public void SignalingNorm_HydraulicBoundaryLocationNoOutputAndCalculationWithOutputAndValueChanged_CalculationObserverNotifiedAndMessageLogged() - { - SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundaryLocationNoOutputAndCalculationWithOutput(properties => properties.SignalingNorm = newSignalingNorm); - } - - [Test] - public void NormativeNorm_HydraulicBoundaryLocationNoOutputAndCalculationWithOutputAndValueChanged_CalculationObserverNotifiedAndMessageLogged() - { - SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundaryLocationNoOutputAndCalculationWithOutput(properties => properties.NormativeNorm = newNormativeNorm); - } - - #endregion - - #region NoHydraulicBoundaryLocationNoOutputAndCalculationWithOutput - - [Test] - public void LowerLimitNorm_NoHydraulicBoundaryLocationNoOutputAndCalculationWithOutputAndValueChanged_CalculationObserverNotifiedAndMessageLogged() - { - SetPropertyAndVerifyNotifcationsAndOutputForNoHydraulicBoundaryLocationNoOutputAndCalculationWithOutput(properties => properties.LowerLimitNorm = newLowerLimitNorm); - } - - [Test] - public void SignalingNorm_NoHydraulicBoundaryLocationNoOutputAndCalculationWithOutputAndValueChanged_CalculationObserverNotifiedAndMessageLogged() - { - SetPropertyAndVerifyNotifcationsAndOutputForNoHydraulicBoundaryLocationNoOutputAndCalculationWithOutput(properties => properties.SignalingNorm = newSignalingNorm); - } - - [Test] - public void NormativeNorm_NoHydraulicBoundaryLocationNoOutputAndCalculationWithOutputAndValueChanged_CalculationObserverNotifiedAndMessageLogged() - { - SetPropertyAndVerifyNotifcationsAndOutputForNoHydraulicBoundaryLocationNoOutputAndCalculationWithOutput(properties => properties.NormativeNorm = newNormativeNorm); - } - - #endregion - - #region HydraulicBoundaryLocationNoOutputAndNoCalculationsWithOutput - - [Test] - public void LowerLimitNorm_HydraulicBoundaryLocationNoOutputAndNoCalculationsWithOutputAndValueChanged_NoObserversNotifiedAndMessagesLogged() - { - SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundaryLocationNoOutputAndNoCalculationsWithOutput(properties => properties.LowerLimitNorm = newLowerLimitNorm); - } - - [Test] - public void SignalingNorm_HydraulicBoundaryLocationNoOutputAndNoCalculationsWithOutputAndValueChanged_NoObserversNotifiedAndMessagesLogged() - { - SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundaryLocationNoOutputAndNoCalculationsWithOutput(properties => properties.SignalingNorm = newSignalingNorm); - } - - [Test] - public void NormativeNorm_HydraulicBoundaryLocationNoOutputAndNoCalculationsWithOutputAndValueChanged_NoObserversNotifiedAndMessagesLogged() - { - SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundaryLocationNoOutputAndNoCalculationsWithOutput(properties => properties.NormativeNorm = newNormativeNorm); - } - - #endregion - - #region NoHydraulicBoundaryDatabaseAndNoCalculationsWithOutput - - [Test] - public void LowerLimitNorm_NoHydraulicBoundaryDatabaseAndNoCalculationsWithOutputAndValueChanged_NoObserversNotifiedAndMessagesLogged() - { - SetPropertyAndVerifyNotifcationsAndOutputForNoHydraulicBoundaryDatabaseAndNoCalculationsWithOutput(properties => properties.LowerLimitNorm = newLowerLimitNorm); - } - - [Test] - public void SignalingNorm_NoHydraulicBoundaryDatabaseAndNoCalculationsWithOutputAndValueChanged_NoObserversNotifiedAndMessagesLogged() - { - SetPropertyAndVerifyNotifcationsAndOutputForNoHydraulicBoundaryDatabaseAndNoCalculationsWithOutput(properties => properties.SignalingNorm = newSignalingNorm); - } - - [Test] - public void NormativeNorm_NoHydraulicBoundaryDatabaseAndNoCalculationsWithOutputAndValueChanged_NoObserversNotifiedAndMessagesLogged() - { - SetPropertyAndVerifyNotifcationsAndOutputForNoHydraulicBoundaryDatabaseAndNoCalculationsWithOutput(properties => properties.NormativeNorm = newNormativeNorm); - } - - #endregion - private void SetPropertyAndVerifyNotifcationsAndOutputForAllDataSet(Action setPropertyAction) { // Setup @@ -320,9 +167,13 @@ AssertNormValues(properties, failureMechanismContribution); - AssertLocationsOutputClear(hydraulicBoundaryLocation, grassCoverErosionOutwardsHydraulicBoundaryLocation); - AssertCalculationsOutputClear(pipingCalculation, grassCoverErosionInwardsCalculation, heightStructuresCalculation); + AssertLocationOutputClear(hydraulicBoundaryLocation); + AssertLocationOutputClear(grassCoverErosionOutwardsHydraulicBoundaryLocation); + AssertCalculationOutputClear(pipingCalculation); + AssertCalculationOutputClear(grassCoverErosionInwardsCalculation); + AssertCalculationOutputClear(heightStructuresCalculation); + mockRepository.VerifyAll(); } @@ -503,7 +354,7 @@ TestHelper.AssertLogMessageIsGenerated(call, messageAllHydraulicBoundaryLocationOutputCleared, 1); AssertNormValues(properties, failureMechanismContribution); - AssertLocationsOutputClear(hydraulicBoundaryLocation); + AssertLocationOutputClear(hydraulicBoundaryLocation); mockRepository.VerifyAll(); } @@ -598,7 +449,9 @@ TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); AssertNormValues(properties, failureMechanismContribution); - AssertCalculationsOutputClear(pipingCalculation, grassCoverErosionInwardsCalculation, heightStructuresCalculation); + AssertCalculationOutputClear(pipingCalculation); + AssertCalculationOutputClear(grassCoverErosionInwardsCalculation); + AssertCalculationOutputClear(heightStructuresCalculation); mockRepository.VerifyAll(); } @@ -684,7 +537,9 @@ TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); AssertNormValues(properties, failureMechanismContribution); - AssertCalculationsOutputClear(pipingCalculation, grassCoverErosionInwardsCalculation, heightStructuresCalculation); + AssertCalculationOutputClear(pipingCalculation); + AssertCalculationOutputClear(grassCoverErosionInwardsCalculation); + AssertCalculationOutputClear(heightStructuresCalculation); mockRepository.VerifyAll(); } @@ -787,25 +642,171 @@ mockRepository.VerifyAll(); } + #region AllDataAndOutputSet + + [Test] + public void LowerLimitNorm_ValueChanged_ClearsDependentDataAndNotifiesObserversAndLogsMessages() + { + SetPropertyAndVerifyNotifcationsAndOutputForAllDataSet(properties => properties.LowerLimitNorm = newLowerLimitNorm); + } + + [Test] + public void SignalingNorm_ValueChanged_ClearsDependentDataAndNotifiesObserversAndLogsMessages() + { + SetPropertyAndVerifyNotifcationsAndOutputForAllDataSet(properties => properties.SignalingNorm = newSignalingNorm); + } + + [Test] + public void NormativeNorm_ValueChanged_ClearsDependentDataAndNotifiesObserversAndLogsMessages() + { + SetPropertyAndVerifyNotifcationsAndOutputForAllDataSet(properties => properties.NormativeNorm = newNormativeNorm); + } + + #endregion + + #region NoPermissionGiven + + [Test] + public void LowerLimitNorm_PermissionNotGiven_DoesnotClearDependentDataNorNotifiesObserversAndLogsMessages() + { + ChangeValueNoPermissionGivenAndVerifyNoNotifcationsAndOutputForAllDataSet(properties => properties.LowerLimitNorm = newLowerLimitNorm); + } + + [Test] + public void SignalingNorm_PermissionNotGiven_DoesnotClearDependentDataNorNotifiesObserversAndLogsMessages() + { + ChangeValueNoPermissionGivenAndVerifyNoNotifcationsAndOutputForAllDataSet(properties => properties.SignalingNorm = newSignalingNorm); + } + + [Test] + public void NormativeNorm_PermissionNotGiven_DoesnotClearDependentDataNorNotifiesObserversAndLogsMessages() + { + ChangeValueNoPermissionGivenAndVerifyNoNotifcationsAndOutputForAllDataSet(properties => properties.NormativeNorm = newNormativeNorm); + } + + #endregion + + #region HydraulicBoundarySetAndCalculationsNoOutput + + [Test] + public void LowerLimitNorm_HydraulicBoundarySetAndCalculationsNoOutput_HydraulicBoundaryDatabaseObserversNotifiedAndMessagesLogged() + { + SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundarySetAndCalculationsNoOutput(properties => properties.LowerLimitNorm = newLowerLimitNorm); + } + + [Test] + public void SignalingNorm_HydraulicBoundarySetAndCalculationsNoOutput_HydraulicBoundaryDatabaseObserversNotifiedAndMessagesLogged() + { + SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundarySetAndCalculationsNoOutput(properties => properties.SignalingNorm = newSignalingNorm); + } + + [Test] + public void NormativeNorm_HydraulicBoundarySetAndCalculationsNoOutput_HydraulicBoundaryDatabaseObserversNotifiedAndMessagesLogged() + { + SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundarySetAndCalculationsNoOutput(properties => properties.NormativeNorm = newNormativeNorm); + } + + #endregion + + #region HydraulicBoundaryLocationNoOutputAndCalculationWithOutput + + [Test] + public void LowerLimitNorm_HydraulicBoundaryLocationNoOutputAndCalculationWithOutputAndValueChanged_CalculationObserverNotifiedAndMessageLogged() + { + SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundaryLocationNoOutputAndCalculationWithOutput(properties => properties.LowerLimitNorm = newLowerLimitNorm); + } + + [Test] + public void SignalingNorm_HydraulicBoundaryLocationNoOutputAndCalculationWithOutputAndValueChanged_CalculationObserverNotifiedAndMessageLogged() + { + SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundaryLocationNoOutputAndCalculationWithOutput(properties => properties.SignalingNorm = newSignalingNorm); + } + + [Test] + public void NormativeNorm_HydraulicBoundaryLocationNoOutputAndCalculationWithOutputAndValueChanged_CalculationObserverNotifiedAndMessageLogged() + { + SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundaryLocationNoOutputAndCalculationWithOutput(properties => properties.NormativeNorm = newNormativeNorm); + } + + #endregion + + #region NoHydraulicBoundaryLocationNoOutputAndCalculationWithOutput + + [Test] + public void LowerLimitNorm_NoHydraulicBoundaryLocationNoOutputAndCalculationWithOutputAndValueChanged_CalculationObserverNotifiedAndMessageLogged() + { + SetPropertyAndVerifyNotifcationsAndOutputForNoHydraulicBoundaryLocationNoOutputAndCalculationWithOutput(properties => properties.LowerLimitNorm = newLowerLimitNorm); + } + + [Test] + public void SignalingNorm_NoHydraulicBoundaryLocationNoOutputAndCalculationWithOutputAndValueChanged_CalculationObserverNotifiedAndMessageLogged() + { + SetPropertyAndVerifyNotifcationsAndOutputForNoHydraulicBoundaryLocationNoOutputAndCalculationWithOutput(properties => properties.SignalingNorm = newSignalingNorm); + } + + [Test] + public void NormativeNorm_NoHydraulicBoundaryLocationNoOutputAndCalculationWithOutputAndValueChanged_CalculationObserverNotifiedAndMessageLogged() + { + SetPropertyAndVerifyNotifcationsAndOutputForNoHydraulicBoundaryLocationNoOutputAndCalculationWithOutput(properties => properties.NormativeNorm = newNormativeNorm); + } + + #endregion + + #region HydraulicBoundaryLocationNoOutputAndNoCalculationsWithOutput + + [Test] + public void LowerLimitNorm_HydraulicBoundaryLocationNoOutputAndNoCalculationsWithOutputAndValueChanged_NoObserversNotifiedAndMessagesLogged() + { + SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundaryLocationNoOutputAndNoCalculationsWithOutput(properties => properties.LowerLimitNorm = newLowerLimitNorm); + } + + [Test] + public void SignalingNorm_HydraulicBoundaryLocationNoOutputAndNoCalculationsWithOutputAndValueChanged_NoObserversNotifiedAndMessagesLogged() + { + SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundaryLocationNoOutputAndNoCalculationsWithOutput(properties => properties.SignalingNorm = newSignalingNorm); + } + + [Test] + public void NormativeNorm_HydraulicBoundaryLocationNoOutputAndNoCalculationsWithOutputAndValueChanged_NoObserversNotifiedAndMessagesLogged() + { + SetPropertyAndVerifyNotifcationsAndOutputForHydraulicBoundaryLocationNoOutputAndNoCalculationsWithOutput(properties => properties.NormativeNorm = newNormativeNorm); + } + + #endregion + + #region NoHydraulicBoundaryDatabaseAndNoCalculationsWithOutput + + [Test] + public void LowerLimitNorm_NoHydraulicBoundaryDatabaseAndNoCalculationsWithOutputAndValueChanged_NoObserversNotifiedAndMessagesLogged() + { + SetPropertyAndVerifyNotifcationsAndOutputForNoHydraulicBoundaryDatabaseAndNoCalculationsWithOutput(properties => properties.LowerLimitNorm = newLowerLimitNorm); + } + + [Test] + public void SignalingNorm_NoHydraulicBoundaryDatabaseAndNoCalculationsWithOutputAndValueChanged_NoObserversNotifiedAndMessagesLogged() + { + SetPropertyAndVerifyNotifcationsAndOutputForNoHydraulicBoundaryDatabaseAndNoCalculationsWithOutput(properties => properties.SignalingNorm = newSignalingNorm); + } + + [Test] + public void NormativeNorm_NoHydraulicBoundaryDatabaseAndNoCalculationsWithOutputAndValueChanged_NoObserversNotifiedAndMessagesLogged() + { + SetPropertyAndVerifyNotifcationsAndOutputForNoHydraulicBoundaryDatabaseAndNoCalculationsWithOutput(properties => properties.NormativeNorm = newNormativeNorm); + } + + #endregion + #region Asserts - private static void AssertCalculationsOutputClear(PipingCalculation pipingCalculation, - GrassCoverErosionInwardsCalculation grassCoverErosionInwardsCalculation, - StructuresCalculation heightStructuresCalculation) + private static void AssertCalculationOutputClear(ICalculation calculation) { - Assert.IsNull(pipingCalculation.Output); - Assert.IsNull(pipingCalculation.SemiProbabilisticOutput); - Assert.IsNull(grassCoverErosionInwardsCalculation.Output); - Assert.IsNull(heightStructuresCalculation.Output); + Assert.IsFalse(calculation.HasOutput); } - private static void AssertLocationsOutputClear(params HydraulicBoundaryLocation[] hydraulicBoundaryLocations) + private static void AssertLocationOutputClear(HydraulicBoundaryLocation hydraulicBoundaryLocation) { - foreach (HydraulicBoundaryLocation hydraulicBoundaryLocation in hydraulicBoundaryLocations) - { - Assert.IsFalse(hydraulicBoundaryLocation.WaveHeightCalculation.HasOutput); - Assert.IsFalse(hydraulicBoundaryLocation.DesignWaterLevelCalculation.HasOutput); - } + Assert.IsFalse(hydraulicBoundaryLocation.WaveHeightCalculation.HasOutput); + Assert.IsFalse(hydraulicBoundaryLocation.DesignWaterLevelCalculation.HasOutput); } private static void AssertNormValues(FailureMechanismContributionProperties properties, FailureMechanismContribution failureMechanismContribution) Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ReferenceLineMetaSelectionDialogTest.cs =================================================================== diff -u -r22314fc5cda60354caef8993c7da004d784e46c4 -ra8700b1afad48f78474132bf4745ba00a47df584 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ReferenceLineMetaSelectionDialogTest.cs (.../ReferenceLineMetaSelectionDialogTest.cs) (revision 22314fc5cda60354caef8993c7da004d784e46c4) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ReferenceLineMetaSelectionDialogTest.cs (.../ReferenceLineMetaSelectionDialogTest.cs) (revision a8700b1afad48f78474132bf4745ba00a47df584) @@ -78,6 +78,8 @@ Assert.IsInstanceOf(dialog); Assert.IsNull(dialog.SelectedReferenceLineMeta); Assert.AreEqual(@"Stel een traject samen", dialog.Text); + var selectAssessmentSectionLabel = (GroupBox) new ComponentTester("groupBox1", dialog).Properties; + Assert.AreEqual("Kies de norm van het dijktraject:", selectAssessmentSectionLabel.Text); AssertReferenceLineMetaDataGridViewControl(dialog); } Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj =================================================================== diff -u -rffa34dc6feb3d5fdf246cb89f7e1c11990ccc960 -ra8700b1afad48f78474132bf4745ba00a47df584 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj (.../Ringtoets.Integration.Forms.Test.csproj) (revision ffa34dc6feb3d5fdf246cb89f7e1c11990ccc960) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj (.../Ringtoets.Integration.Forms.Test.csproj) (revision a8700b1afad48f78474132bf4745ba00a47df584) @@ -232,10 +232,6 @@ {28811C4A-6C18-42C1-88B2-A03A3784E2D0} Ringtoets.Integration.Service - - {174BA68D-6176-4AC5-8DFD-98CDD2C4D971} - Ringtoets.Integration.TestUtils - Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs =================================================================== diff -u -r860b842af2e04fa5ac9ceebd65dfbd8df7524c98 -ra8700b1afad48f78474132bf4745ba00a47df584 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs (.../FailureMechanismContributionViewTest.cs) (revision 860b842af2e04fa5ac9ceebd65dfbd8df7524c98) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs (.../FailureMechanismContributionViewTest.cs) (revision a8700b1afad48f78474132bf4745ba00a47df584) @@ -53,13 +53,15 @@ private const int probabilitySpaceColumnIndex = 4; private Form testForm; + [SetUp] public override void Setup() { base.Setup(); testForm = new Form(); } + [TearDown] public override void TearDown() { testForm.Dispose(); @@ -336,6 +338,56 @@ } [Test] + public void UpdateObserver_ChangeNormativeNormAndNotify_UpdateReturnPeriodTextBox() + { + // Setup + const int lowerLimitNorm = 100; + const int signalingNorm = 1000; + + var random = new Random(21); + + var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); + + var mockRepository = new MockRepository(); + var viewCommands = mockRepository.Stub(); + var someMechanism = mockRepository.Stub(); + mockRepository.ReplayAll(); + + var contribution = new FailureMechanismContribution(new[] + { + someMechanism + }, random.Next(0, 100)) + { + LowerLimitNorm = 1.0 / lowerLimitNorm, + SignalingNorm = 1.0 / signalingNorm + }; + + using (var distributionView = new FailureMechanismContributionView(viewCommands) + { + Data = contribution, + AssessmentSection = assessmentSection + }) + { + ShowFormWithView(distributionView); + var returnPeriodLabel = new ControlTester(returnPeriodLabelName); + + // Precondition + string initialReturnPeriodLabelText = $"Norm van het dijktraject: 1 / {lowerLimitNorm.ToString(CultureInfo.CurrentCulture)}"; + Assert.AreEqual(initialReturnPeriodLabelText, returnPeriodLabel.Properties.Text); + + // Call + contribution.NormativeNorm = NormType.Signaling; + contribution.NotifyObservers(); + + // Assert + string newReturnPeriodLabelText = $"Norm van het dijktraject: 1 / {signalingNorm.ToString(CultureInfo.CurrentCulture)}"; + Assert.AreEqual(newReturnPeriodLabelText, returnPeriodLabel.Properties.Text); + } + + mockRepository.VerifyAll(); + } + + [Test] [TestCase(true)] [TestCase(false)] public void GivenFailureMechanismContributionView_WhenSettingData_ProperlyInitializeRelevancyColumn(bool isFailureMechanismRelevant) Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Handlers/FailureMechanismContributionNormChangeHandlerTest.cs =================================================================== diff -u -r2c06b27dabc83beee23288eb5c6268847afa0a19 -ra8700b1afad48f78474132bf4745ba00a47df584 --- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Handlers/FailureMechanismContributionNormChangeHandlerTest.cs (.../FailureMechanismContributionNormChangeHandlerTest.cs) (revision 2c06b27dabc83beee23288eb5c6268847afa0a19) +++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Handlers/FailureMechanismContributionNormChangeHandlerTest.cs (.../FailureMechanismContributionNormChangeHandlerTest.cs) (revision a8700b1afad48f78474132bf4745ba00a47df584) @@ -102,7 +102,7 @@ var handler = new FailureMechanismContributionNormChangeHandler(assessmentSection); // Call - handler.SetPropertyValueAfterConfirmation(() => { }); + handler.SetPropertyValueAfterConfirmation(() => {}); // Assert Assert.AreEqual("Bevestigen", title); @@ -146,10 +146,9 @@ var handler = new FailureMechanismContributionNormChangeHandler(assessmentSection); IEnumerable affectedObjects = null; - const double norm = 1.0 / 1000; // Call - Action call = () => affectedObjects = handler.SetPropertyValueAfterConfirmation(() => assessmentSection.FailureMechanismContribution.LowerLimitNorm = norm); + Action call = () => affectedObjects = handler.SetPropertyValueAfterConfirmation(() => {}); // Assert var expectedMessages = new[] @@ -159,8 +158,6 @@ }; TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages, 2); - Assert.AreEqual(norm, assessmentSection.FailureMechanismContribution.LowerLimitNorm); - CollectionAssert.IsEmpty(assessmentSection.GetFailureMechanisms().SelectMany(fm => fm.Calculations).Where(c => c.HasOutput), "There should be no calculations with output."); @@ -206,16 +203,12 @@ IEnumerable affectedObjects = null; - const double newNormValue = 0.01234; - // Call - Action call = () => affectedObjects = handler.SetPropertyValueAfterConfirmation(() => assessmentSection.FailureMechanismContribution.LowerLimitNorm = newNormValue); + Action call = () => affectedObjects = handler.SetPropertyValueAfterConfirmation(() => {}); // Assert TestHelper.AssertLogMessageIsGenerated(call, "Alle berekende resultaten voor alle hydraulische randvoorwaardenlocaties zijn verwijderd.", 1); - Assert.AreEqual(newNormValue, assessmentSection.FailureMechanismContribution.LowerLimitNorm); - foreach (HydraulicBoundaryLocation location in assessmentSection.HydraulicBoundaryDatabase.Locations .Concat(assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations)) { @@ -248,16 +241,13 @@ var handler = new FailureMechanismContributionNormChangeHandler(assessmentSection); IEnumerable affectedObjects = null; - const double norm = 1.0 / 1000; // Call - Action call = () => affectedObjects = handler.SetPropertyValueAfterConfirmation(() => assessmentSection.FailureMechanismContribution.LowerLimitNorm = norm); + Action call = () => affectedObjects = handler.SetPropertyValueAfterConfirmation(() => {}); // Assert TestHelper.AssertLogMessageIsGenerated(call, "De resultaten van 36 berekeningen zijn verwijderd.", 1); - Assert.AreEqual(norm, assessmentSection.FailureMechanismContribution.LowerLimitNorm); - CollectionAssert.IsEmpty(assessmentSection.GetFailureMechanisms().SelectMany(fm => fm.Calculations).Where(c => c.HasOutput), "There should be no calculations with output."); @@ -271,6 +261,29 @@ } [Test] + public void SetPropertyValueAfterConfirmation_FullyConfiguredAssessmentSectionConfirmationGiven_HandlerExecuted() + { + // Setup + DialogBoxHandler = (name, wnd) => + { + var tester = new MessageBoxTester(wnd); + tester.ClickOk(); + }; + + AssessmentSection assessmentSection = TestDataGenerator.GetAssessmentSectionWithAllCalculationConfigurations(); + + var handler = new FailureMechanismContributionNormChangeHandler(assessmentSection); + + var handlerExecuted = false; + + // Call + handler.SetPropertyValueAfterConfirmation(() => handlerExecuted = true); + + // Assert + Assert.IsTrue(handlerExecuted); + } + + [Test] public void SetPropertyValueAfterConfirmation_ConfirmationNotGiven_SetValueNotCalledNoAffectedObjects() { // Setup