Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs =================================================================== diff -u -r4be5d262e6b3827e2b3c5207a6cb8a673a990ce4 -rf726957ba7a0601b4367cb75c45f3a162b6b6553 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs (.../AssessmentSectionTest.cs) (revision 4be5d262e6b3827e2b3c5207a6cb8a673a990ce4) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs (.../AssessmentSectionTest.cs) (revision f726957ba7a0601b4367cb75c45f3a162b6b6553) @@ -544,11 +544,10 @@ } [Test] - [TestCaseSource(nameof(GetNewFailureMechanisms))] - public void GivenAssessmentSection_WhenSettingFailureMechanismWithSameContribution_ThenNewFailureMechanismSet( - Action setNewFailureMechanismAction, TFailureMechanism newFailureMechanism, - Func getFailureMechanismFunc) - where TFailureMechanism : IFailureMechanism + [TestCaseSource(nameof(GetNewFailureMechanismsWithGetPropertyFunc))] + public void GivenAssessmentSection_WhenSettingFailureMechanismWithSameContribution_ThenNewFailureMechanismSet( + Action setNewFailureMechanismAction, IFailureMechanism newFailureMechanism, + Func getFailureMechanismFunc) { // Given var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); @@ -563,10 +562,8 @@ [Test] [TestCaseSource(nameof(GetNewFailureMechanisms))] - public void GivenAssessmentSection_WhenSettingFailureMechanismWithOtherContributionContribution_ThenThrowsArgumentException( - Action setNewFailureMechanismAction, TFailureMechanism newFailureMechanism, - Func getFailureMechanismFunc) - where TFailureMechanism : IFailureMechanism + public void GivenAssessmentSection_WhenSettingFailureMechanismWithOtherContributionContribution_ThenThrowsArgumentException( + Action setNewFailureMechanismAction, IFailureMechanism newFailureMechanism) { // Given var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); @@ -784,65 +781,103 @@ Assert.IsFalse(hydraulicBoundaryLocationCalculation.InputParameters.ShouldIllustrationPointsBeCalculated); } + private static IEnumerable GetNewFailureMechanismsWithGetPropertyFunc() + { + IEnumerable testData = GetFailureMechanismTestData(); + + foreach (FailureMechanismTestData failureMechanismTestData in testData) + { + yield return new TestCaseData(failureMechanismTestData.SetNewFailureMechanismAction, + failureMechanismTestData.NewFailureMechanism, + failureMechanismTestData.GetFailureMechanismFunc); + } + } + private static IEnumerable GetNewFailureMechanisms() { - yield return new TestCaseData(new Action((section, failureMechanism) => section.Piping = failureMechanism), - new PipingFailureMechanism(), - new Func(section => section.Piping)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.GrassCoverErosionInwards = failureMechanism), - new GrassCoverErosionInwardsFailureMechanism(), - new Func(section => section.GrassCoverErosionInwards)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.MacroStabilityInwards = failureMechanism), - new MacroStabilityInwardsFailureMechanism(), - new Func(section => section.MacroStabilityInwards)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.MacroStabilityOutwards = failureMechanism), - new MacroStabilityOutwardsFailureMechanism(), - new Func(section => section.MacroStabilityOutwards)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.Microstability = failureMechanism), - new MicrostabilityFailureMechanism(), - new Func(section => section.Microstability)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.StabilityStoneCover = failureMechanism), - new StabilityStoneCoverFailureMechanism(), - new Func(section => section.StabilityStoneCover)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.StabilityStoneCover = failureMechanism), - new StabilityStoneCoverFailureMechanism(), - new Func(section => section.StabilityStoneCover)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.WaveImpactAsphaltCover = failureMechanism), - new WaveImpactAsphaltCoverFailureMechanism(), - new Func(section => section.WaveImpactAsphaltCover)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.WaterPressureAsphaltCover = failureMechanism), - new WaterPressureAsphaltCoverFailureMechanism(), - new Func(section => section.WaterPressureAsphaltCover)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.GrassCoverErosionOutwards = failureMechanism), - new GrassCoverErosionOutwardsFailureMechanism(), - new Func(section => section.GrassCoverErosionOutwards)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.GrassCoverSlipOffOutwards = failureMechanism), - new GrassCoverSlipOffOutwardsFailureMechanism(), - new Func(section => section.GrassCoverSlipOffOutwards)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.GrassCoverSlipOffInwards = failureMechanism), - new GrassCoverSlipOffInwardsFailureMechanism(), - new Func(section => section.GrassCoverSlipOffInwards)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.HeightStructures = failureMechanism), - new HeightStructuresFailureMechanism(), - new Func(section => section.HeightStructures)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.ClosingStructures = failureMechanism), - new ClosingStructuresFailureMechanism(), - new Func(section => section.ClosingStructures)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.PipingStructure = failureMechanism), - new PipingStructureFailureMechanism(), - new Func(section => section.PipingStructure)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.StabilityPointStructures = failureMechanism), - new StabilityPointStructuresFailureMechanism(), - new Func(section => section.StabilityPointStructures)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.StrengthStabilityLengthwiseConstruction = failureMechanism), - new StrengthStabilityLengthwiseConstructionFailureMechanism(), - new Func(section => section.StrengthStabilityLengthwiseConstruction)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.DuneErosion = failureMechanism), - new DuneErosionFailureMechanism(), - new Func(section => section.DuneErosion)); - yield return new TestCaseData(new Action((section, failureMechanism) => section.TechnicalInnovation = failureMechanism), - new TechnicalInnovationFailureMechanism(), - new Func(section => section.TechnicalInnovation)); + IEnumerable testData = GetFailureMechanismTestData(); + + foreach (FailureMechanismTestData failureMechanismTestData in testData) + { + yield return new TestCaseData(failureMechanismTestData.SetNewFailureMechanismAction, + failureMechanismTestData.NewFailureMechanism); + } } + + private static IEnumerable GetFailureMechanismTestData() + { + yield return new FailureMechanismTestData((section, failureMechanism) => section.Piping = (PipingFailureMechanism) failureMechanism, + new PipingFailureMechanism(), + section => section.Piping); + yield return new FailureMechanismTestData((section, failureMechanism) => section.GrassCoverErosionInwards = (GrassCoverErosionInwardsFailureMechanism) failureMechanism, + new GrassCoverErosionInwardsFailureMechanism(), + section => section.GrassCoverErosionInwards); + yield return new FailureMechanismTestData((section, failureMechanism) => section.MacroStabilityInwards = (MacroStabilityInwardsFailureMechanism) failureMechanism, + new MacroStabilityInwardsFailureMechanism(), + section => section.MacroStabilityInwards); + yield return new FailureMechanismTestData((section, failureMechanism) => section.MacroStabilityOutwards = (MacroStabilityOutwardsFailureMechanism) failureMechanism, + new MacroStabilityOutwardsFailureMechanism(), + section => section.MacroStabilityOutwards); + yield return new FailureMechanismTestData((section, failureMechanism) => section.Microstability = (MicrostabilityFailureMechanism) failureMechanism, + new MicrostabilityFailureMechanism(), + section => section.Microstability); + yield return new FailureMechanismTestData((section, failureMechanism) => section.StabilityStoneCover = (StabilityStoneCoverFailureMechanism) failureMechanism, + new StabilityStoneCoverFailureMechanism(), + section => section.StabilityStoneCover); + yield return new FailureMechanismTestData((section, failureMechanism) => section.WaveImpactAsphaltCover = (WaveImpactAsphaltCoverFailureMechanism) failureMechanism, + new WaveImpactAsphaltCoverFailureMechanism(), + section => section.WaveImpactAsphaltCover); + yield return new FailureMechanismTestData((section, failureMechanism) => section.WaterPressureAsphaltCover = (WaterPressureAsphaltCoverFailureMechanism) failureMechanism, + new WaterPressureAsphaltCoverFailureMechanism(), + section => section.WaterPressureAsphaltCover); + yield return new FailureMechanismTestData((section, failureMechanism) => section.GrassCoverErosionOutwards = (GrassCoverErosionOutwardsFailureMechanism) failureMechanism, + new GrassCoverErosionOutwardsFailureMechanism(), + section => section.GrassCoverErosionOutwards); + yield return new FailureMechanismTestData((section, failureMechanism) => section.GrassCoverSlipOffOutwards = (GrassCoverSlipOffOutwardsFailureMechanism) failureMechanism, + new GrassCoverSlipOffOutwardsFailureMechanism(), + section => section.GrassCoverSlipOffOutwards); + yield return new FailureMechanismTestData((section, failureMechanism) => section.GrassCoverSlipOffInwards = (GrassCoverSlipOffInwardsFailureMechanism) failureMechanism, + new GrassCoverSlipOffInwardsFailureMechanism(), + section => section.GrassCoverSlipOffInwards); + yield return new FailureMechanismTestData((section, failureMechanism) => section.HeightStructures = (HeightStructuresFailureMechanism) failureMechanism, + new HeightStructuresFailureMechanism(), + section => section.HeightStructures); + yield return new FailureMechanismTestData((section, failureMechanism) => section.ClosingStructures = (ClosingStructuresFailureMechanism) failureMechanism, + new ClosingStructuresFailureMechanism(), + section => section.ClosingStructures); + yield return new FailureMechanismTestData((section, failureMechanism) => section.PipingStructure = (PipingStructureFailureMechanism) failureMechanism, + new PipingStructureFailureMechanism(), + section => section.PipingStructure); + yield return new FailureMechanismTestData((section, failureMechanism) => section.StabilityPointStructures = (StabilityPointStructuresFailureMechanism) failureMechanism, + new StabilityPointStructuresFailureMechanism(), + section => section.StabilityPointStructures); + yield return new FailureMechanismTestData((section, failureMechanism) => section.StrengthStabilityLengthwiseConstruction = (StrengthStabilityLengthwiseConstructionFailureMechanism) failureMechanism, + new StrengthStabilityLengthwiseConstructionFailureMechanism(), + section => section.StrengthStabilityLengthwiseConstruction); + yield return new FailureMechanismTestData((section, failureMechanism) => section.DuneErosion = (DuneErosionFailureMechanism) failureMechanism, + new DuneErosionFailureMechanism(), + section => section.DuneErosion); + yield return new FailureMechanismTestData((section, failureMechanism) => section.TechnicalInnovation = (TechnicalInnovationFailureMechanism) failureMechanism, + new TechnicalInnovationFailureMechanism(), + section => section.TechnicalInnovation); + } + + private class FailureMechanismTestData + { + public FailureMechanismTestData(Action setNewFailureMechanismAction, + IFailureMechanism newFailureMechanism, + Func getFailureMechanismFunc) + { + SetNewFailureMechanismAction = setNewFailureMechanismAction; + NewFailureMechanism = newFailureMechanism; + GetFailureMechanismFunc = getFailureMechanismFunc; + } + + public Action SetNewFailureMechanismAction { get; } + + public IFailureMechanism NewFailureMechanism { get; } + + public Func GetFailureMechanismFunc { get; } + } } } \ No newline at end of file