Index: Riskeer/WaveImpactAsphaltCover/test/Riskeer.WaveImpactAsphaltCover.Forms.Test/PresentationObjects/HydraulicLoadsState/WaveImpactAsphaltCoverFailureMechanismContextTest.cs =================================================================== diff -u -r9f9d6e573f3003f5a881a7653a3c527e1725b44c -r2ee8ee48be35adcf1d06220acca5279ff436a2fc --- Riskeer/WaveImpactAsphaltCover/test/Riskeer.WaveImpactAsphaltCover.Forms.Test/PresentationObjects/HydraulicLoadsState/WaveImpactAsphaltCoverFailureMechanismContextTest.cs (.../WaveImpactAsphaltCoverFailureMechanismContextTest.cs) (revision 9f9d6e573f3003f5a881a7653a3c527e1725b44c) +++ Riskeer/WaveImpactAsphaltCover/test/Riskeer.WaveImpactAsphaltCover.Forms.Test/PresentationObjects/HydraulicLoadsState/WaveImpactAsphaltCoverFailureMechanismContextTest.cs (.../WaveImpactAsphaltCoverFailureMechanismContextTest.cs) (revision 2ee8ee48be35adcf1d06220acca5279ff436a2fc) @@ -19,16 +19,10 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. -using System; using NUnit.Framework; using Rhino.Mocks; -using Core.Common.Base; -using Core.Common.Base.Data; -using Core.Common.TestUtil; using Riskeer.Common.Data.AssessmentSection; using Riskeer.Common.Forms.PresentationObjects; -using Riskeer.Common.Data.TestUtil; -using Riskeer.Common.Forms.TestUtil; using Riskeer.WaveImpactAsphaltCover.Data; using Riskeer.WaveImpactAsphaltCover.Forms.PresentationObjects.HydraulicLoadsState; @@ -55,78 +49,5 @@ Assert.AreSame(failureMechanism, context.WrappedData); Assert.AreSame(assessmentSection, context.Parent); } - [Test] - [SetCulture("nl-NL")] - [TestCase(double.NaN)] - [TestCase(double.NegativeInfinity)] - [TestCase(double.PositiveInfinity)] - [TestCase(-0.005)] - [TestCase( 2.005)] - public void WaterVolumetricWeight_SetInvalidValue_ThrowArgumentExceptionAndDoesNotUpdateObservers(double value) - { - // Setup - var mocks = new MockRepository(); - var observable = mocks.StrictMock(); - mocks.ReplayAll(); - - var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); - var roundedValue = (RoundedDouble) value; - - var handler = new FailureMechanismSetPropertyValueAfterConfirmationParameterTester( - failureMechanism, - roundedValue, - new[] - { - observable - }); - - var properties = new Riskeer.WaveImpactAsphaltCover.Forms.PropertyClasses.HydraulicLoadsState.WaveImpactAsphaltCoverFailureMechanismProperties(failureMechanism, handler); - - // Call - void Call() => properties.C = roundedValue; - - // Assert - const string expectedMessage = "De waarde van parameter 'c' moet binnen het bereik [0,00, 2,00] liggen."; - TestHelper.AssertThrowsArgumentExceptionAndTestMessage(Call, expectedMessage); - Assert.IsTrue(handler.Called); - - mocks.VerifyAll(); - } - - [Test] - [TestCase(1.5)] - [TestCase(-0.004)] - [TestCase( 2.004)] - public void WaterVolumetricWeight_SetValidValue_SetsValueRoundedAndUpdatesObservers(double value) - { - // Setup - var mocks = new MockRepository(); - var observable = mocks.StrictMock(); - observable.Expect(o => o.NotifyObservers()); - mocks.ReplayAll(); - - var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); - var roundedValue = (RoundedDouble) value; - - var handler = new FailureMechanismSetPropertyValueAfterConfirmationParameterTester( - failureMechanism, - roundedValue, - new[] - { - observable - }); - - var properties = new Riskeer.WaveImpactAsphaltCover.Forms.PropertyClasses.HydraulicLoadsState.WaveImpactAsphaltCoverFailureMechanismProperties(failureMechanism, handler); - - // Call - properties.C = roundedValue; - - // Assert - Assert.AreEqual(value, failureMechanism.GeneralInput.C, - failureMechanism.GeneralInput.C.GetAccuracy()); - Assert.IsTrue(handler.Called); - - mocks.VerifyAll(); - } } } \ No newline at end of file Index: Riskeer/WaveImpactAsphaltCover/test/Riskeer.WaveImpactAsphaltCover.Forms.Test/PropertyClasses/HydraulicLoadsState/WaveImpactAsphaltCoverFailureMechanismPropertiesTest.cs =================================================================== diff -u -r4b4b8a9607ac669b026a57a90cbd6b9c1d1856b2 -r2ee8ee48be35adcf1d06220acca5279ff436a2fc --- Riskeer/WaveImpactAsphaltCover/test/Riskeer.WaveImpactAsphaltCover.Forms.Test/PropertyClasses/HydraulicLoadsState/WaveImpactAsphaltCoverFailureMechanismPropertiesTest.cs (.../WaveImpactAsphaltCoverFailureMechanismPropertiesTest.cs) (revision 4b4b8a9607ac669b026a57a90cbd6b9c1d1856b2) +++ Riskeer/WaveImpactAsphaltCover/test/Riskeer.WaveImpactAsphaltCover.Forms.Test/PropertyClasses/HydraulicLoadsState/WaveImpactAsphaltCoverFailureMechanismPropertiesTest.cs (.../WaveImpactAsphaltCoverFailureMechanismPropertiesTest.cs) (revision 2ee8ee48be35adcf1d06220acca5279ff436a2fc) @@ -21,10 +21,15 @@ using System; using System.ComponentModel; +using Core.Common.Base; using Core.Common.Base.Data; +using Core.Common.TestUtil; using Core.Gui.TestUtil; using NUnit.Framework; +using Rhino.Mocks; +using Riskeer.Common.Data.TestUtil; using Riskeer.Common.Forms.ChangeHandlers; +using Riskeer.Common.Forms.TestUtil; using Riskeer.WaveImpactAsphaltCover.Data; using Riskeer.WaveImpactAsphaltCover.Forms.PropertyClasses; using Riskeer.WaveImpactAsphaltCover.Forms.PropertyClasses.HydraulicLoadsState; @@ -62,6 +67,17 @@ } [Test] + public void Constructor_ChangeHandlerNull_ThrowArgumentNullException() + { + // Call + void Call() => new WaveImpactAsphaltCoverFailureMechanismProperties(new WaveImpactAsphaltCoverFailureMechanism(), null); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("handler", exception.ParamName); + } + + [Test] public void Constructor_Always_PropertiesHaveExpectedAttributeValues() { // Call @@ -106,24 +122,81 @@ PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(cProperty, modelSettingsCategory, "c [-]", - "De waarde van de parameter 'c' in de berekening voor golfcondities.", - false); + "De waarde van de parameter 'c' in de berekening voor golfcondities."); } [Test] - public void Test_InvalidValueParamC() + [SetCulture("nl-NL")] + [TestCase(double.NaN)] + [TestCase(double.NegativeInfinity)] + [TestCase(double.PositiveInfinity)] + [TestCase(-0.005)] + [TestCase(2.005)] + public void C_SetInvalidValue_ThrowArgumentExceptionAndDoesNotUpdateObservers(double value) { + // Setup + var mocks = new MockRepository(); + var observable = mocks.StrictMock(); + mocks.ReplayAll(); + + var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); + var roundedValue = (RoundedDouble) value; + + var handler = new FailureMechanismSetPropertyValueAfterConfirmationParameterTester( + failureMechanism, + roundedValue, + new[] + { + observable + }); + + var properties = new WaveImpactAsphaltCoverFailureMechanismProperties(failureMechanism, handler); + // Call - Assert.Catch(SetToOutOfBounds); + void Call() => properties.C = roundedValue; + + // Assert + const string expectedMessage = "De waarde van parameter 'c' moet binnen het bereik [0,00, 2,00] liggen."; + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(Call, expectedMessage); + Assert.IsTrue(handler.Called); + + mocks.VerifyAll(); } - private void SetToOutOfBounds() + [Test] + [TestCase(1.5)] + [TestCase(-0.004)] + [TestCase(2.004)] + public void C_SetValidValue_SetsValueRoundedAndUpdatesObservers(double value) { + // Setup + var mocks = new MockRepository(); + var observable = mocks.StrictMock(); + observable.Expect(o => o.NotifyObservers()); + mocks.ReplayAll(); + var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); - var properties = new WaveImpactAsphaltCoverFailureMechanismProperties(failureMechanism, new FailureMechanismPropertyChangeHandler()); - // C must be in range [0, ... , 2] - properties.C = new RoundedDouble(2, 3.14); - } + var roundedValue = (RoundedDouble) value; + var handler = new FailureMechanismSetPropertyValueAfterConfirmationParameterTester( + failureMechanism, + roundedValue, + new[] + { + observable + }); + + var properties = new WaveImpactAsphaltCoverFailureMechanismProperties(failureMechanism, handler); + + // Call + properties.C = roundedValue; + + // Assert + Assert.AreEqual(value, failureMechanism.GeneralInput.C, + failureMechanism.GeneralInput.C.GetAccuracy()); + Assert.IsTrue(handler.Called); + + mocks.VerifyAll(); + } } } \ No newline at end of file