Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs =================================================================== diff -u -r8db49d5f51b6dd7e779a1fdcc70f5ced075261bf -rf73ccefc485b825ad692f48200a025338c14273d --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs (.../AssessmentSectionTest.cs) (revision 8db49d5f51b6dd7e779a1fdcc70f5ced075261bf) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs (.../AssessmentSectionTest.cs) (revision f73ccefc485b825ad692f48200a025338c14273d) @@ -552,6 +552,7 @@ { // Given var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); + newFailureMechanism.Contribution = getFailureMechanismFunc(assessmentSection).Contribution; // When setNewFailureMechanismAction(assessmentSection, newFailureMechanism); @@ -560,6 +561,24 @@ Assert.AreSame(getFailureMechanismFunc(assessmentSection), newFailureMechanism); } + [Test] + [TestCaseSource(nameof(GetNewFailureMechanisms))] + public void GivenAssessmentSection_WhenSettingFailureMechanismWithOtherContributionContribution_ThenThrowsArgumentException( + Action setNewFailureMechanismAction, TFailureMechanism newFailureMechanism, + Func getFailureMechanismFunc) + where TFailureMechanism : IFailureMechanism + { + // Given + var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); + newFailureMechanism.Contribution = 80; + + // When + TestDelegate call = () => setNewFailureMechanismAction(assessmentSection, newFailureMechanism); + + // Then + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, "De contributie van het nieuwe toetsspoor moet gelijk zijn aan het oude toetsspoor."); + } + private static IFailureMechanism[] GetExpectedContributingFailureMechanisms(AssessmentSection section) { return new IFailureMechanism[]