Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Forms/PropertyClasses/DuneErosionFailureMechanismProperties.cs =================================================================== diff -u -r6ac1d016e76120e778964de3ad7e2c0d6c837669 -r44e9772bc7d234fe16a3e00fc23c155f7ee81d20 --- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Forms/PropertyClasses/DuneErosionFailureMechanismProperties.cs (.../DuneErosionFailureMechanismProperties.cs) (revision 6ac1d016e76120e778964de3ad7e2c0d6c837669) +++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Forms/PropertyClasses/DuneErosionFailureMechanismProperties.cs (.../DuneErosionFailureMechanismProperties.cs) (revision 44e9772bc7d234fe16a3e00fc23c155f7ee81d20) @@ -39,8 +39,9 @@ { private const int namePropertyIndex = 1; private const int codePropertyIndex = 2; - private const int isRelevantPropertyIndex = 3; - private const int nPropertyIndex = 4; + private const int contributionPropertyIndex = 3; + private const int isRelevantPropertyIndex = 4; + private const int nPropertyIndex = 5; private readonly IFailureMechanismPropertyChangeHandler propertyChangeHandler; /// @@ -111,7 +112,7 @@ private bool ShouldHidePropertyWhenFailureMechanismIrrelevant(string propertyName) { - return nameof(N).Equals(propertyName); + return nameof(Contribution).Equals(propertyName) || nameof(N).Equals(propertyName); } #region General @@ -140,6 +141,19 @@ } } + [DynamicVisible] + [PropertyOrder(contributionPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Contribution_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Contribution_Description))] + public double Contribution + { + get + { + return data.Contribution; + } + } + [PropertyOrder(isRelevantPropertyIndex)] [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_IsRelevant_DisplayName))] Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Forms.Test/PropertyClasses/DuneErosionFailureMechanismPropertiesTest.cs =================================================================== diff -u -r98544d1ded83f880238cb8e69f77b58ec1dbcc19 -r44e9772bc7d234fe16a3e00fc23c155f7ee81d20 --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Forms.Test/PropertyClasses/DuneErosionFailureMechanismPropertiesTest.cs (.../DuneErosionFailureMechanismPropertiesTest.cs) (revision 98544d1ded83f880238cb8e69f77b58ec1dbcc19) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Forms.Test/PropertyClasses/DuneErosionFailureMechanismPropertiesTest.cs (.../DuneErosionFailureMechanismPropertiesTest.cs) (revision 44e9772bc7d234fe16a3e00fc23c155f7ee81d20) @@ -40,25 +40,37 @@ { private const int namePropertyIndex = 0; private const int codePropertyIndex = 1; - private const int isRelevantPropertyIndex = 2; - private const int nPropertyIndex = 3; + private const int contributionPropertyIndex = 2; + private const int isRelevantPropertyIndex = 3; + private const int nPropertyIndex = 4; [Test] - public void Constructor_ExpectedValues() + [TestCase(true)] + [TestCase(false)] + public void Constructor_ExpectedValues(bool isRelevant) { // Setup var mocks = new MockRepository(); var changeHandler = mocks.Stub>(); mocks.ReplayAll(); - var failureMechanism = new DuneErosionFailureMechanism(); + var failureMechanism = new DuneErosionFailureMechanism + { + IsRelevant = isRelevant + }; // Call var properties = new DuneErosionFailureMechanismProperties(failureMechanism, changeHandler); // Assert Assert.IsInstanceOf>(properties); Assert.AreSame(failureMechanism, properties.Data); + Assert.AreEqual(failureMechanism.Name, properties.Name); + Assert.AreEqual(failureMechanism.Code, properties.Code); + Assert.AreEqual(failureMechanism.Contribution, properties.Contribution); + Assert.AreEqual(isRelevant, properties.IsRelevant); + + Assert.AreEqual(failureMechanism.GeneralInput.N, properties.N); mocks.VerifyAll(); } @@ -111,7 +123,7 @@ // Assert PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); - Assert.AreEqual(4, dynamicProperties.Count); + Assert.AreEqual(5, dynamicProperties.Count); const string generalCategory = "Algemeen"; const string lengthEffectParameterCategory = "Lengte-effect parameters"; @@ -130,6 +142,13 @@ "Het label van het toetsspoor.", true); + PropertyDescriptor contributionProperty = dynamicProperties[contributionPropertyIndex]; + PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(contributionProperty, + generalCategory, + "Faalkansbijdrage [%]", + "Procentuele bijdrage van dit toetsspoor aan de totale overstromingskans van het traject.", + true); + PropertyDescriptor isRelevantProperty = dynamicProperties[isRelevantPropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(isRelevantProperty, generalCategory, @@ -181,7 +200,7 @@ "Het label van het toetsspoor.", true); - PropertyDescriptor isRelevantProperty = dynamicProperties[isRelevantPropertyIndex]; + PropertyDescriptor isRelevantProperty = dynamicProperties[isRelevantPropertyIndex - 1]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(isRelevantProperty, generalCategory, "Is relevant", @@ -191,43 +210,6 @@ } [Test] - [TestCase(true)] - [TestCase(false)] - public void Data_SetNewFailureMechanismContext_ReturnCorrectPropertyValues(bool isRelevant) - { - // Setup - var mocks = new MockRepository(); - var changeHandler = mocks.Stub>(); - mocks.ReplayAll(); - - var originalFailureMechanism = new DuneErosionFailureMechanism - { - IsRelevant = !isRelevant, - GeneralInput = - { - N = (RoundedDouble) 1.1 - } - }; - - var failureMechanism = new DuneErosionFailureMechanism - { - IsRelevant = isRelevant - }; - - var properties = new DuneErosionFailureMechanismProperties(originalFailureMechanism, changeHandler); - - // Call - properties.Data = failureMechanism; - - // Assert - Assert.AreEqual("Duinwaterkering - Duinafslag", properties.Name); - Assert.AreEqual("DA", properties.Code); - Assert.AreEqual(isRelevant, properties.IsRelevant); - Assert.AreEqual(failureMechanism.GeneralInput.N, properties.N); - mocks.VerifyAll(); - } - - [Test] [SetCulture("nl-NL")] [TestCase(0.0)] [TestCase(-1.0)] @@ -314,6 +296,7 @@ Assert.IsTrue(properties.DynamicVisibleValidationMethod(nameof(properties.Code))); Assert.IsTrue(properties.DynamicVisibleValidationMethod(nameof(properties.IsRelevant))); + Assert.AreEqual(isRelevant, properties.DynamicVisibleValidationMethod(nameof(properties.Contribution))); Assert.AreEqual(isRelevant, properties.DynamicVisibleValidationMethod(nameof(properties.N))); Assert.IsTrue(properties.DynamicVisibleValidationMethod(null));