Index: Riskeer/Integration/src/Riskeer.Integration.Data/Assembly/CombinedAssemblyFailureMechanismSectionFactory.cs =================================================================== diff -u -r3f942d826d774b47dac26a16a96d5acc17a8bc66 -r1631c3a4dbe0722d58d5e2cf906ff65bf2510250 --- Riskeer/Integration/src/Riskeer.Integration.Data/Assembly/CombinedAssemblyFailureMechanismSectionFactory.cs (.../CombinedAssemblyFailureMechanismSectionFactory.cs) (revision 3f942d826d774b47dac26a16a96d5acc17a8bc66) +++ Riskeer/Integration/src/Riskeer.Integration.Data/Assembly/CombinedAssemblyFailureMechanismSectionFactory.cs (.../CombinedAssemblyFailureMechanismSectionFactory.cs) (revision 1631c3a4dbe0722d58d5e2cf906ff65bf2510250) @@ -170,7 +170,7 @@ return sectionResults.Select(sectionResult => { - FailureMechanismSectionAssemblyResult failureMechanismSectionAssemblyResult = FailurePathAssemblyHelper.AssembleFailureMechanismSection( + FailureMechanismSectionAssemblyResult failureMechanismSectionAssemblyResult = AssemblyToolHelper.AssembleFailureMechanismSection( sectionResult, sr => getAssemblyFunc(sr, assessmentSection)); CombinedAssemblyFailureMechanismSection section = CreateSection( Index: Riskeer/Integration/test/Riskeer.Integration.Data.Test/Assembly/CombinedAssemblyFailureMechanismSectionFactoryTest.cs =================================================================== diff -u -r89039d4a60d80904883f2ea76f98108595a9accf -r1631c3a4dbe0722d58d5e2cf906ff65bf2510250 --- Riskeer/Integration/test/Riskeer.Integration.Data.Test/Assembly/CombinedAssemblyFailureMechanismSectionFactoryTest.cs (.../CombinedAssemblyFailureMechanismSectionFactoryTest.cs) (revision 89039d4a60d80904883f2ea76f98108595a9accf) +++ Riskeer/Integration/test/Riskeer.Integration.Data.Test/Assembly/CombinedAssemblyFailureMechanismSectionFactoryTest.cs (.../CombinedAssemblyFailureMechanismSectionFactoryTest.cs) (revision 1631c3a4dbe0722d58d5e2cf906ff65bf2510250) @@ -126,6 +126,45 @@ } } + [Test] + public void CreateInput_WithAllFailureMechanismsAndCalculatorThrowsException_ReturnsInputCollection() + { + // Setup + var random = new Random(21); + AssessmentSection assessmentSection = TestDataGenerator.GetAssessmentSectionWithAllFailureMechanismSectionsAndResults( + random.NextEnumValue()); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + calculator.ThrowExceptionOnCalculate = true; + + // Call + IEnumerable> inputs = CombinedAssemblyFailureMechanismSectionFactory.CreateInput( + assessmentSection, assessmentSection.GetFailureMechanisms()); + + // Assert + Assert.AreEqual(15, inputs.Count()); + + AssertSectionsWithResult(assessmentSection.Piping.SectionResults, FailureMechanismSectionAssemblyGroup.Gr, inputs.ElementAt(0)); + AssertSectionsWithResult(assessmentSection.GrassCoverErosionInwards.SectionResults, FailureMechanismSectionAssemblyGroup.Gr, inputs.ElementAt(1)); + AssertSectionsWithResult(assessmentSection.MacroStabilityInwards.SectionResults, FailureMechanismSectionAssemblyGroup.Gr, inputs.ElementAt(2)); + AssertSectionsWithResult(assessmentSection.Microstability.SectionResults, FailureMechanismSectionAssemblyGroup.Gr, inputs.ElementAt(3)); + AssertSectionsWithResult(assessmentSection.StabilityStoneCover.SectionResults, FailureMechanismSectionAssemblyGroup.Gr, inputs.ElementAt(4)); + AssertSectionsWithResult(assessmentSection.WaveImpactAsphaltCover.SectionResults, FailureMechanismSectionAssemblyGroup.Gr, inputs.ElementAt(5)); + AssertSectionsWithResult(assessmentSection.WaterPressureAsphaltCover.SectionResults, FailureMechanismSectionAssemblyGroup.Gr, inputs.ElementAt(6)); + AssertSectionsWithResult(assessmentSection.GrassCoverErosionOutwards.SectionResults, FailureMechanismSectionAssemblyGroup.Gr, inputs.ElementAt(7)); + AssertSectionsWithResult(assessmentSection.GrassCoverSlipOffOutwards.SectionResults, FailureMechanismSectionAssemblyGroup.Gr, inputs.ElementAt(8)); + AssertSectionsWithResult(assessmentSection.GrassCoverSlipOffInwards.SectionResults, FailureMechanismSectionAssemblyGroup.Gr, inputs.ElementAt(9)); + AssertSectionsWithResult(assessmentSection.HeightStructures.SectionResults, FailureMechanismSectionAssemblyGroup.Gr, inputs.ElementAt(10)); + AssertSectionsWithResult(assessmentSection.ClosingStructures.SectionResults, FailureMechanismSectionAssemblyGroup.Gr, inputs.ElementAt(11)); + AssertSectionsWithResult(assessmentSection.PipingStructure.SectionResults, FailureMechanismSectionAssemblyGroup.Gr, inputs.ElementAt(12)); + AssertSectionsWithResult(assessmentSection.StabilityPointStructures.SectionResults, FailureMechanismSectionAssemblyGroup.Gr, inputs.ElementAt(13)); + AssertSectionsWithResult(assessmentSection.DuneErosion.SectionResults, FailureMechanismSectionAssemblyGroup.Gr, inputs.ElementAt(14)); + } + } + private static IEnumerable GetFailureMechanismTestCaseData() { AssessmentSection assessmentSection = TestDataGenerator.GetAssessmentSectionWithAllFailureMechanismSectionsAndResults(