Index: Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/AssessmentSectionAssemblyCalculator.cs
===================================================================
diff -u -r7b5cd0bee4661be52ad068e2c08a3bbf4d7d5b3b -ra843f40364553b8695b22639431fa1176fc7ee45
--- Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/AssessmentSectionAssemblyCalculator.cs (.../AssessmentSectionAssemblyCalculator.cs) (revision 7b5cd0bee4661be52ad068e2c08a3bbf4d7d5b3b)
+++ Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/AssessmentSectionAssemblyCalculator.cs (.../AssessmentSectionAssemblyCalculator.cs) (revision a843f40364553b8695b22639431fa1176fc7ee45)
@@ -88,13 +88,17 @@
}
}
- public void AssembleAssessmentSection(AssessmentSectionAssemblyCategoryGroup failureMechanismsWithoutProbability, AssessmentSectionAssembly failureMechanismsWithProbability)
+ public AssessmentSectionAssemblyCategoryGroup AssembleAssessmentSection(AssessmentSectionAssemblyCategoryGroup failureMechanismsWithoutProbability,
+ AssessmentSectionAssembly failureMechanismsWithProbability)
{
try
{
IAssessmentGradeAssembler kernel = factory.CreateAssessmentSectionAssemblyKernel();
- kernel.AssembleAssessmentSectionWbi2C1(AssessmentSectionAssemblyInputCreator.CreateAssessementSectionAssemblyResult(failureMechanismsWithoutProbability),
- AssessmentSectionAssemblyInputCreator.CreateAssessementSectionAssemblyResult(failureMechanismsWithProbability));
+ AssessmentSectionAssemblyResult output = kernel.AssembleAssessmentSectionWbi2C1(
+ AssessmentSectionAssemblyInputCreator.CreateAssessementSectionAssemblyResult(failureMechanismsWithoutProbability),
+ AssessmentSectionAssemblyInputCreator.CreateAssessementSectionAssemblyResult(failureMechanismsWithProbability));
+
+ return AssessmentSectionAssemblyCreator.CreateAssessmentSectionAssembly(output).Group;
}
catch (Exception e)
{
Index: Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/IAssessmentSectionAssemblyCalculator.cs
===================================================================
diff -u -rda04f8c4fb1d538c00f175f74d4b26217f68d3d5 -ra843f40364553b8695b22639431fa1176fc7ee45
--- Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/IAssessmentSectionAssemblyCalculator.cs (.../IAssessmentSectionAssemblyCalculator.cs) (revision da04f8c4fb1d538c00f175f74d4b26217f68d3d5)
+++ Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/IAssessmentSectionAssemblyCalculator.cs (.../IAssessmentSectionAssemblyCalculator.cs) (revision a843f40364553b8695b22639431fa1176fc7ee45)
@@ -50,5 +50,18 @@
/// Thrown when
/// an error occurs when performing the assembly.
AssessmentSectionAssemblyCategoryGroup AssembleFailureMechanisms(IEnumerable input);
+
+ ///
+ /// Assembles the assessment section for the given inputs.
+ ///
+ /// The assembly result for
+ /// failure mechanisms without probability to assemble for.
+ /// The assembly result for
+ /// failure mechanisms with probability to assemble for.
+ /// An .
+ /// Thrown when
+ /// an error occurs when performing the assembly.
+ AssessmentSectionAssemblyCategoryGroup AssembleAssessmentSection(AssessmentSectionAssemblyCategoryGroup failureMechanismsWithoutProbability,
+ AssessmentSectionAssembly failureMechanismsWithProbability);
}
}
\ No newline at end of file
Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/AssessmentSectionAssemblyCalculatorTest.cs
===================================================================
diff -u -r7b5cd0bee4661be52ad068e2c08a3bbf4d7d5b3b -ra843f40364553b8695b22639431fa1176fc7ee45
--- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/AssessmentSectionAssemblyCalculatorTest.cs (.../AssessmentSectionAssemblyCalculatorTest.cs) (revision 7b5cd0bee4661be52ad068e2c08a3bbf4d7d5b3b)
+++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/AssessmentSectionAssemblyCalculatorTest.cs (.../AssessmentSectionAssemblyCalculatorTest.cs) (revision a843f40364553b8695b22639431fa1176fc7ee45)
@@ -365,6 +365,7 @@
{
var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance;
AssessmentSectionAssemblyKernelStub kernel = factory.LastCreatedAssessmentSectionAssemblyKernel;
+ kernel.AssessmentSectionAssemblyResult = new AssessmentSectionAssemblyResult(random.NextEnumValue());
var calculator = new AssessmentSectionAssemblyCalculator(factory);
@@ -388,6 +389,90 @@
}
}
+ [Test]
+ public void AssembleAssessmentSection_KernelWithCompleteOutput_OutputCorrectlyReturnedByCalculator()
+ {
+ // Setup
+ var random = new Random(21);
+ var failureMechanismsWithProbability = new AssessmentSectionAssembly(random.NextDouble(),
+ random.NextEnumValue());
+ var failureMechanismsWithoutProbability = random.NextEnumValue();
+
+ using (new AssemblyToolKernelFactoryConfig())
+ {
+ var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance;
+ AssessmentSectionAssemblyKernelStub kernel = factory.LastCreatedAssessmentSectionAssemblyKernel;
+ kernel.AssessmentSectionAssemblyResult = new AssessmentSectionAssemblyResult(random.NextEnumValue());
+
+ var calculator = new AssessmentSectionAssemblyCalculator(factory);
+
+ // Call
+ AssessmentSectionAssemblyCategoryGroup assembly = calculator.AssembleAssessmentSection(failureMechanismsWithoutProbability,
+ failureMechanismsWithProbability);
+
+ // Assert
+ Assert.AreEqual(AssemblyCategoryCreator.CreateAssessmentSectionAssemblyCategory(kernel.AssessmentGradeResult), assembly);
+ }
+ }
+
+ [Test]
+ public void AssembleAssessmentSection_KernelWithInvalidOutput_ThrowsAssessmentSectionAssemblyCalculatorException()
+ {
+ // Setup
+ var random = new Random(21);
+ var failureMechanismsWithProbability = new AssessmentSectionAssembly(random.NextDouble(),
+ random.NextEnumValue());
+ var failureMechanismsWithoutProbability = random.NextEnumValue();
+
+ using (new AssemblyToolKernelFactoryConfig())
+ {
+ var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance;
+ AssessmentSectionAssemblyKernelStub kernel = factory.LastCreatedAssessmentSectionAssemblyKernel;
+ kernel.AssessmentSectionAssemblyResult = new AssessmentSectionAssemblyResult((EAssessmentGrade) 99);
+
+ var calculator = new AssessmentSectionAssemblyCalculator(factory);
+
+ // Call
+ TestDelegate test = () => calculator.AssembleAssessmentSection(failureMechanismsWithoutProbability,
+ failureMechanismsWithProbability);
+
+ // Assert
+ var exception = Assert.Throws(test);
+ Exception innerException = exception.InnerException;
+ Assert.IsInstanceOf(innerException);
+ Assert.AreEqual(innerException.Message, exception.Message);
+ }
+ }
+
+ [Test]
+ public void AssembleAssessmentSection_KernelThrowsException_ThrowsAssessmentSectionAssemblyCalculatorException()
+ {
+ // Setup
+ var random = new Random(21);
+ var failureMechanismsWithProbability = new AssessmentSectionAssembly(random.NextDouble(),
+ random.NextEnumValue());
+ var failureMechanismsWithoutProbability = random.NextEnumValue();
+
+ using (new AssemblyToolKernelFactoryConfig())
+ {
+ var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance;
+ AssessmentSectionAssemblyKernelStub kernel = factory.LastCreatedAssessmentSectionAssemblyKernel;
+ kernel.ThrowException = true;
+
+ var calculator = new AssessmentSectionAssemblyCalculator(factory);
+
+ // Call
+ TestDelegate test = () => calculator.AssembleAssessmentSection(failureMechanismsWithoutProbability,
+ failureMechanismsWithProbability);
+
+ // Assert
+ var exception = Assert.Throws(test);
+ Exception innerException = exception.InnerException;
+ Assert.IsInstanceOf(innerException);
+ Assert.AreEqual(innerException.Message, exception.Message);
+ }
+ }
+
private static AssemblyCategoriesInput CreateAssemblyCategoriesInput()
{
var random = new Random(21);