Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsDrainagePropertiesTest.cs =================================================================== diff -u -r4535a5933deea802fc761b17bbf048f7ca91912e -r88ae0776d429bb80080b8e209be5a658070ce38c --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsDrainagePropertiesTest.cs (.../MacroStabilityInwardsDrainagePropertiesTest.cs) (revision 4535a5933deea802fc761b17bbf048f7ca91912e) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsDrainagePropertiesTest.cs (.../MacroStabilityInwardsDrainagePropertiesTest.cs) (revision 88ae0776d429bb80080b8e209be5a658070ce38c) @@ -33,6 +33,7 @@ using Ringtoets.Common.Forms.TestUtil; using Ringtoets.MacroStabilityInwards.Data; using Ringtoets.MacroStabilityInwards.Forms.PropertyClasses; +using Ringtoets.MacroStabilityInwards.Primitives; namespace Ringtoets.MacroStabilityInwards.Forms.Test.PropertyClasses { @@ -92,19 +93,14 @@ } [Test] - [TestCase(true)] - [TestCase(false)] - public void Constructor_ValidData_PropertiesHaveExpectedAttributesValues(bool drainageConstructionPresent) + public void Constructor_ValidData_PropertiesHaveExpectedAttributesValues() { // Setup var mocks = new MockRepository(); var changeHandler = mocks.Stub(); mocks.ReplayAll(); - var input = new MacroStabilityInwardsInput - { - DrainageConstructionPresent = drainageConstructionPresent - }; + var input = new MacroStabilityInwardsInput(); // Call var properties = new MacroStabilityInwardsDrainageProperties(input, changeHandler); @@ -121,23 +117,24 @@ drainagePresentProperty, drainageCategory, "Aanwezig", - "Is drainage aanwezig?"); + "Is drainage aanwezig?", + true); PropertyDescriptor drainageXProperty = dynamicProperties[expectedXCoordinateDrainageConstructionPropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties( drainageXProperty, drainageCategory, "X [m]", "X-coördinaat van het middelpunt van de drainage (in lokale coördinaten).", - !drainageConstructionPresent); + true); PropertyDescriptor drainageZProperty = dynamicProperties[expectedZCoordinateDrainageConstructionPropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties( drainageZProperty, drainageCategory, "Z [m+NAP]", "Z-coördinaat (hoogte) van het middelpunt van de drainage.", - !drainageConstructionPresent); + true); mocks.VerifyAll(); } @@ -221,9 +218,14 @@ } [Test] - [TestCase(true)] - [TestCase(false)] - public void DynamicReadOnlyValidationMethod_Always_DependsDrainageConstructionPresent(bool drainageConstructionPresent) + public void DynamicReadOnlyValidationMethod_CoordinatesDrainageConstruction_DependsOnSoilScenarioAndDrainageConstructionPresent( + [Values(true, false)] bool drainageConstructionPresent, + [Values(MacroStabilityInwardsDikeSoilScenario.ClayDikeOnSand, + MacroStabilityInwardsDikeSoilScenario.ClayDikeOnClay, + MacroStabilityInwardsDikeSoilScenario.SandDikeOnSand, + MacroStabilityInwardsDikeSoilScenario.SandDikeOnClay)] MacroStabilityInwardsDikeSoilScenario soilScenario, + [Values(nameof(MacroStabilityInwardsDrainageProperties.XCoordinateDrainageConstruction), + nameof(MacroStabilityInwardsDrainageProperties.ZCoordinateDrainageConstruction))] string propertyName) { // Setup var mocks = new MockRepository(); @@ -232,19 +234,54 @@ var input = new MacroStabilityInwardsInput { - DrainageConstructionPresent = drainageConstructionPresent + DrainageConstructionPresent = drainageConstructionPresent, + DikeSoilScenario = soilScenario }; var properties = new MacroStabilityInwardsDrainageProperties(input, handler); // Call - bool result = properties.DynamicReadOnlyValidationMethod(""); + bool result = properties.DynamicReadOnlyValidationMethod(propertyName); // Assert - Assert.AreEqual(!drainageConstructionPresent, result); + bool isClayDike = input.DikeSoilScenario == MacroStabilityInwardsDikeSoilScenario.ClayDikeOnClay + || input.DikeSoilScenario == MacroStabilityInwardsDikeSoilScenario.ClayDikeOnSand; + + Assert.AreEqual(isClayDike || !drainageConstructionPresent, result); } [Test] + public void DynamicReadOnlyValidationMethod_DrainageConstructionPresent_DependsOnSoilScenario( + [Values(true, false)] bool drainageConstructionPresent, + [Values(MacroStabilityInwardsDikeSoilScenario.ClayDikeOnSand, + MacroStabilityInwardsDikeSoilScenario.ClayDikeOnClay, + MacroStabilityInwardsDikeSoilScenario.SandDikeOnSand, + MacroStabilityInwardsDikeSoilScenario.SandDikeOnClay)] MacroStabilityInwardsDikeSoilScenario soilScenario) + { + // Setup + var mocks = new MockRepository(); + var handler = mocks.Stub(); + mocks.ReplayAll(); + + var input = new MacroStabilityInwardsInput + { + DrainageConstructionPresent = drainageConstructionPresent, + DikeSoilScenario = soilScenario + }; + + var properties = new MacroStabilityInwardsDrainageProperties(input, handler); + + // Call + bool result = properties.DynamicReadOnlyValidationMethod(nameof(properties.DrainageConstructionPresent)); + + // Assert + bool isClayDike = input.DikeSoilScenario == MacroStabilityInwardsDikeSoilScenario.ClayDikeOnClay + || input.DikeSoilScenario == MacroStabilityInwardsDikeSoilScenario.ClayDikeOnSand; + + Assert.AreEqual(isClayDike, result); + } + + [Test] public void ToString_Always_ReturnEmptyString() { // Setup