Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/Assembly/AssessmentSectionAssemblyFactory.cs =================================================================== diff -u -r546714000c8327fe4916302baeabccfb959dc736 -r1636697d6483c3cd2c83a75b8d0fdbbdcd227168 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/Assembly/AssessmentSectionAssemblyFactory.cs (.../AssessmentSectionAssemblyFactory.cs) (revision 546714000c8327fe4916302baeabccfb959dc736) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/Assembly/AssessmentSectionAssemblyFactory.cs (.../AssessmentSectionAssemblyFactory.cs) (revision 1636697d6483c3cd2c83a75b8d0fdbbdcd227168) @@ -187,6 +187,10 @@ { throw new AssemblyException(e.Message, e); } + catch (AssemblyException e) + { + throw new AssemblyException(Resources.AssessmentSectionAssemblyFactory_Error_while_assembling_failureMechanims, e); + } } private static IEnumerable GetFailureMechanismWithProbabilityAssemblyResults(AssessmentSection assessmentSection) Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Assembly/AssessmentSectionAssemblyFactoryTest.cs =================================================================== diff -u -r546714000c8327fe4916302baeabccfb959dc736 -r1636697d6483c3cd2c83a75b8d0fdbbdcd227168 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Assembly/AssessmentSectionAssemblyFactoryTest.cs (.../AssessmentSectionAssemblyFactoryTest.cs) (revision 546714000c8327fe4916302baeabccfb959dc736) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Assembly/AssessmentSectionAssemblyFactoryTest.cs (.../AssessmentSectionAssemblyFactoryTest.cs) (revision 1636697d6483c3cd2c83a75b8d0fdbbdcd227168) @@ -63,8 +63,8 @@ { var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = calculatorfactory.LastCreatedFailureMechanismAssemblyCalculator; - failureMechanismAssemblyCalculator.FailureMechanismAssemblyOutput = new FailureMechanismAssembly(random.NextDouble(), - random.NextEnumValue()); + failureMechanismAssemblyCalculator.FailureMechanismAssemblyOutput = new FailureMechanismAssembly( + random.NextDouble(), random.NextEnumValue()); AssessmentSectionAssemblyCalculatorStub assessmentSectionAssemblyCalculator = calculatorfactory.LastCreatedAssessmentSectionAssemblyCalculator; @@ -93,8 +93,8 @@ { var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; AssessmentSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedAssessmentSectionAssemblyCalculator; - calculator.AssembleFailureMechanismsAssemblyOutput = new AssessmentSectionAssembly(random.NextDouble(), - random.NextEnumValue()); + calculator.AssembleFailureMechanismsAssemblyOutput = new AssessmentSectionAssembly( + random.NextDouble(), random.NextEnumValue()); // Call AssessmentSectionAssembly output = AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithProbability(assessmentSection); @@ -269,8 +269,8 @@ FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = calculatorfactory.LastCreatedFailureMechanismAssemblyCalculator; AssessmentSectionAssemblyCalculatorStub assessmentSectionAssemblyCalculator = calculatorfactory.LastCreatedAssessmentSectionAssemblyCalculator; - assessmentSectionAssemblyCalculator.AssembleFailureMechanismsAssemblyOutput = new AssessmentSectionAssembly(random.NextDouble(), - random.NextEnumValue()); + assessmentSectionAssemblyCalculator.AssembleFailureMechanismsAssemblyOutput = new AssessmentSectionAssembly( + random.NextDouble(), random.NextEnumValue()); assessmentSectionAssemblyCalculator.AssembleFailureMechanismsAssemblyCategoryGroupOutput = random.NextEnumValue(); // Call @@ -303,8 +303,8 @@ { var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; AssessmentSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedAssessmentSectionAssemblyCalculator; - calculator.AssembleFailureMechanismsAssemblyOutput = new AssessmentSectionAssembly(random.NextDouble(), - random.NextEnumValue()); + calculator.AssembleFailureMechanismsAssemblyOutput = new AssessmentSectionAssembly( + random.NextDouble(), random.NextEnumValue()); calculator.AssembleAssessmentSectionCategoryGroupOutput = random.NextEnumValue(); // Call @@ -372,7 +372,8 @@ public void AssembleCombinedPerFailureMechanismSection_WithAssessmentSection_SetsInputOnCalculator() { var random = new Random(21); - AssessmentSection assessmentSection = TestDataGenerator.GetAssessmenSectionWithAllFailureMechanismSectionsAndResults(random.NextEnumValue()); + AssessmentSection assessmentSection = TestDataGenerator.GetAssessmenSectionWithAllFailureMechanismSectionsAndResults( + random.NextEnumValue()); using (new AssemblyToolCalculatorFactoryConfig()) { @@ -385,7 +386,8 @@ // Assert IEnumerable[] actualInput = calculator.CombinedFailureMechanismSectionsInput.ToArray(); - IEnumerable[] expectedInput = CombinedAssemblyFailureMechanismSectionFactory.CreateInput(assessmentSection, assessmentSection.GetFailureMechanisms()).ToArray(); + IEnumerable[] expectedInput = CombinedAssemblyFailureMechanismSectionFactory.CreateInput( + assessmentSection, assessmentSection.GetFailureMechanisms()).ToArray(); Assert.AreEqual(expectedInput.Length, actualInput.Length); for (var i = 0; i < expectedInput.Length; i++) @@ -408,7 +410,8 @@ public void AssembleCombinedPerFailureMechanismSection_AssemblyRan_ReturnsOutput() { var random = new Random(21); - AssessmentSection assessmentSection = TestDataGenerator.GetAssessmenSectionWithAllFailureMechanismSectionsAndResults(random.NextEnumValue()); + AssessmentSection assessmentSection = TestDataGenerator.GetAssessmenSectionWithAllFailureMechanismSectionsAndResults( + random.NextEnumValue()); using (new AssemblyToolCalculatorFactoryConfig()) { @@ -465,7 +468,8 @@ { // Setup var random = new Random(21); - AssessmentSection assessmentSection = TestDataGenerator.GetAssessmenSectionWithAllFailureMechanismSectionsAndResults(random.NextEnumValue()); + AssessmentSection assessmentSection = TestDataGenerator.GetAssessmenSectionWithAllFailureMechanismSectionsAndResults( + random.NextEnumValue()); using (new AssemblyToolCalculatorFactoryConfig()) { @@ -484,6 +488,31 @@ } } + [Test] + public void AssembleCombinedPerFailureMechanismSection_FailureMechanismSectionCalculatorThrowsException_ThrowsAssemblyException() + { + // Setup + var random = new Random(21); + AssessmentSection assessmentSection = TestDataGenerator.GetAssessmenSectionWithAllFailureMechanismSectionsAndResults( + random.NextEnumValue()); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + calculator.ThrowExceptionOnCalculate = true; + + // Call + TestDelegate call = () => AssessmentSectionAssemblyFactory.AssembleCombinedPerFailureMechanismSection(assessmentSection); + + // Assert + var exception = Assert.Throws(call); + Exception innerException = exception.InnerException; + Assert.IsInstanceOf(innerException); + Assert.AreEqual("Voor een of meerdere toetssporen kan geen oordeel worden bepaald.", exception.Message); + } + } + private static void AssertGroup1And2FailureMechanismInputs(AssessmentSection assessmentSection, FailureMechanismAssembly expectedFailureMechanismAssembly, AssessmentSectionAssemblyCalculatorStub assessmentSectionAssemblyCalculator)