Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PropertyClasses/FailureMechanismContributionPropertiesTest.cs =================================================================== diff -u -r01ad489124b30cf09961349f6049911ae8ee6090 -r9ec7530d68e3e12f58d5d9498be3e4879a0cbc15 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PropertyClasses/FailureMechanismContributionPropertiesTest.cs (.../FailureMechanismContributionPropertiesTest.cs) (revision 01ad489124b30cf09961349f6049911ae8ee6090) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PropertyClasses/FailureMechanismContributionPropertiesTest.cs (.../FailureMechanismContributionPropertiesTest.cs) (revision 9ec7530d68e3e12f58d5d9498be3e4879a0cbc15) @@ -229,18 +229,110 @@ } [Test] - public void LowerLimitNorm_Always_ContributionNotifiedAndPropertyChangedCalled() + [SetCulture("nl-NL")] + [TestCase("0,1")] + [TestCase("1/100")] + [TestCase("1e-2")] + public void LowerLimitNorm_Always_ContributionNotifiedAndPropertyChangedCalled(string norm) { - SetPropertyAndVerifyNotifcationsAndOutputForCalculation(properties => properties.LowerLimitNorm = 0.01.ToString(CultureInfo.CurrentCulture)); + SetPropertyAndVerifyNotifcationsAndOutputForCalculation(properties => properties.LowerLimitNorm = norm); } [Test] - public void SignalingNorm_Always_ContributionNotifiedAndPropertyChangedCalled() + [TestCase(double.MinValue)] + [TestCase(double.MaxValue)] + public void LowerLimitNorm_InvalidValues_ThrowsArgumentException(double newValue) { - SetPropertyAndVerifyNotifcationsAndOutputForCalculation(properties => properties.SignalingNorm = 0.00001.ToString(CultureInfo.CurrentCulture)); + // Setup + const int overflow = 1; + string newProbabilityString = string.Concat(newValue.ToString("r", CultureInfo.CurrentCulture), overflow); + + // Call + TestDelegate call = () => SetPropertyAndVerifyNotifcationsAndOutputForCalculation(properties => properties.LowerLimitNorm = newProbabilityString); + + // Assert + const string expectedMessage = "De waarde voor de faalkans is te groot of te klein."; + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage); } [Test] + [TestCase("no double value")] + [TestCase("")] + [TestCase("1/aaa")] + public void LowerLimitNorm_ValuesUnableToParse_ThrowsArgumentException(string newValue) + { + // Call + TestDelegate call = () => SetPropertyAndVerifyNotifcationsAndOutputForCalculation(properties => properties.LowerLimitNorm = newValue); + + // Assert + const string expectedMessage = "De waarde voor de faalkans kon niet geïnterpreteerd worden als een getal."; + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage); + } + + [Test] + public void LowerLimitNorm_NullValue_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => SetPropertyAndVerifyNotifcationsAndOutputForCalculation(properties => properties.LowerLimitNorm = null); + + // Assert + const string expectedMessage = "De waarde voor de faalkans moet ingevuld zijn."; + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage); + } + + [Test] + [TestCase(double.MinValue)] + [TestCase(double.MaxValue)] + public void SignalingNorm_InvalidValues_ThrowsArgumentException(double newValue) + { + // Setup + const int overflow = 1; + string newProbabilityString = string.Concat(newValue.ToString("r", CultureInfo.CurrentCulture), overflow); + + // Call + TestDelegate call = () => SetPropertyAndVerifyNotifcationsAndOutputForCalculation(properties => properties.SignalingNorm = newProbabilityString); + + // Assert + const string expectedMessage = "De waarde voor de faalkans is te groot of te klein."; + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage); + } + + [Test] + [TestCase("no double value")] + [TestCase("")] + [TestCase("1/aaa")] + public void SignalingNorm_ValuesUnableToParse_ThrowsArgumentException(string newValue) + { + // Call + TestDelegate call = () => SetPropertyAndVerifyNotifcationsAndOutputForCalculation(properties => properties.SignalingNorm = newValue); + + // Assert + const string expectedMessage = "De waarde voor de faalkans kon niet geïnterpreteerd worden als een getal."; + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage); + } + + [Test] + public void SignalingNorm_NullValue_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => SetPropertyAndVerifyNotifcationsAndOutputForCalculation(properties => properties.SignalingNorm = null); + + // Assert + const string expectedMessage = "De waarde voor de faalkans moet ingevuld zijn."; + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage); + } + + [Test] + [SetCulture("nl-NL")] + [TestCase("0,00001")] + [TestCase("1/30000")] + [TestCase("1e-5")] + public void SignalingNorm_Always_ContributionNotifiedAndPropertyChangedCalled(string norm) + { + SetPropertyAndVerifyNotifcationsAndOutputForCalculation(properties => properties.SignalingNorm = norm); + } + + [Test] public void NormativeNorm_Always_ContributionNotifiedAndPropertyChangedCalled() { SetPropertyAndVerifyNotifcationsAndOutputForCalculation(properties => properties.NormativeNorm = NormType.Signaling);