Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Factories/AssessmentSectionAssemblyMapDataFeaturesFactory.cs =================================================================== diff -u -r67c142959f8ca3e26be39c1495ef4bb362d75840 -r3bd5f8c871f1b16716a1946a30cc1e069bcac143 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Factories/AssessmentSectionAssemblyMapDataFeaturesFactory.cs (.../AssessmentSectionAssemblyMapDataFeaturesFactory.cs) (revision 67c142959f8ca3e26be39c1495ef4bb362d75840) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Factories/AssessmentSectionAssemblyMapDataFeaturesFactory.cs (.../AssessmentSectionAssemblyMapDataFeaturesFactory.cs) (revision 3bd5f8c871f1b16716a1946a30cc1e069bcac143) @@ -25,6 +25,7 @@ using Core.Common.Util; using Core.Components.Gis.Features; using Ringtoets.AssemblyTool.Forms; +using Ringtoets.Common.Data.Exceptions; using Ringtoets.Common.Forms.Factories; using Ringtoets.Integration.Data; using Ringtoets.Integration.Data.Assembly; @@ -54,8 +55,17 @@ throw new ArgumentNullException(nameof(assessmentSection)); } - IEnumerable assemblyResults = - AssessmentSectionAssemblyFactory.AssembleCombinedPerFailureMechanismSection(assessmentSection, true); + IEnumerable assemblyResults; + try + { + assemblyResults = + AssessmentSectionAssemblyFactory.AssembleCombinedPerFailureMechanismSection(assessmentSection, true); + } + catch (AssemblyException ) + { + return new MapFeature[0]; + } + var mapFeatures = new List(); foreach (CombinedFailureMechanismSectionAssemblyResult assemblyResult in assemblyResults) { Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Factories/AssessmentSectionAssemblyMapDataFeaturesFactoryTest.cs =================================================================== diff -u -r82812826f04ddf5a19c286164676ce1771b4f027 -r3bd5f8c871f1b16716a1946a30cc1e069bcac143 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Factories/AssessmentSectionAssemblyMapDataFeaturesFactoryTest.cs (.../AssessmentSectionAssemblyMapDataFeaturesFactoryTest.cs) (revision 82812826f04ddf5a19c286164676ce1771b4f027) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Factories/AssessmentSectionAssemblyMapDataFeaturesFactoryTest.cs (.../AssessmentSectionAssemblyMapDataFeaturesFactoryTest.cs) (revision 3bd5f8c871f1b16716a1946a30cc1e069bcac143) @@ -136,6 +136,36 @@ } } + [Test] + public void CreateCombinedFailureMechanismSectionAssemblyFeatures_AssemblyCalculatorThrowsException_ReturnsEmptyFeatureCollection() + { + // Setup + var random = new Random(21); + var referenceLine = new ReferenceLine(); + referenceLine.SetGeometry(new[] + { + new Point2D(0, 0), + new Point2D(2, 2) + }); + var assessmentSection = new AssessmentSection(random.NextEnumValue()) + { + ReferenceLine = referenceLine + }; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + AssessmentSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedAssessmentSectionAssemblyCalculator; + calculator.ThrowExceptionOnCalculate = true; + + // Call + IEnumerable features = AssessmentSectionAssemblyMapDataFeaturesFactory.CreateCombinedFailureMechanismSectionAssemblyFeatures(assessmentSection); + + // Assert + CollectionAssert.IsEmpty(features); + } + } + private static CombinedFailureMechanismSectionAssembly CreateCombinedFailureMechanismSectionAssembly(AssessmentSection assessmentSection, int seed) { var random = new Random(seed);