Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/GrassCoverSlipOffOutwardsFailureMechanismSectionResultAssemblyFactory.cs
===================================================================
diff -u -r8666fab5275f8b0ecc570c1bff4d1d3e06a2f70e -ra593329f1dbecbec57185718a2d2ed09bdb9dc14
--- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/GrassCoverSlipOffOutwardsFailureMechanismSectionResultAssemblyFactory.cs (.../GrassCoverSlipOffOutwardsFailureMechanismSectionResultAssemblyFactory.cs) (revision 8666fab5275f8b0ecc570c1bff4d1d3e06a2f70e)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/GrassCoverSlipOffOutwardsFailureMechanismSectionResultAssemblyFactory.cs (.../GrassCoverSlipOffOutwardsFailureMechanismSectionResultAssemblyFactory.cs) (revision a593329f1dbecbec57185718a2d2ed09bdb9dc14)
@@ -98,5 +98,38 @@
throw new AssemblyException(e.Message, e);
}
}
+
+ ///
+ /// Assembles the tailor made assessment result.
+ ///
+ /// The failure mechanism section result to
+ /// assemble the tailor made assembly for.
+ /// A .
+ /// Thrown when
+ /// is null.
+ /// Thrown when the
+ /// could not be created.
+ public static FailureMechanismSectionAssemblyCategoryGroup AssembleTailorMadeAssessment(
+ GrassCoverSlipOffOutwardsFailureMechanismSectionResult failureMechanismSectionResult)
+ {
+ if (failureMechanismSectionResult == null)
+ {
+ throw new ArgumentNullException(nameof(failureMechanismSectionResult));
+ }
+
+ IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance;
+ IFailureMechanismSectionAssemblyCalculator calculator =
+ calculatorFactory.CreateFailureMechanismSectionAssemblyCalculator(AssemblyToolKernelFactory.Instance);
+
+ try
+ {
+ return calculator.AssembleTailorMadeAssessment(
+ failureMechanismSectionResult.TailorMadeAssessmentResult);
+ }
+ catch (FailureMechanismSectionAssemblyCalculatorException e)
+ {
+ throw new AssemblyException(e.Message, e);
+ }
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/GrassCoverSlipOffOutwardsFailureMechanismSectionResultAssemblyFactoryTest.cs
===================================================================
diff -u -r8666fab5275f8b0ecc570c1bff4d1d3e06a2f70e -ra593329f1dbecbec57185718a2d2ed09bdb9dc14
--- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/GrassCoverSlipOffOutwardsFailureMechanismSectionResultAssemblyFactoryTest.cs (.../GrassCoverSlipOffOutwardsFailureMechanismSectionResultAssemblyFactoryTest.cs) (revision 8666fab5275f8b0ecc570c1bff4d1d3e06a2f70e)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/GrassCoverSlipOffOutwardsFailureMechanismSectionResultAssemblyFactoryTest.cs (.../GrassCoverSlipOffOutwardsFailureMechanismSectionResultAssemblyFactoryTest.cs) (revision a593329f1dbecbec57185718a2d2ed09bdb9dc14)
@@ -200,5 +200,83 @@
}
#endregion
+
+ #region Tailor Made Assembly
+
+ [Test]
+ public void AssembleTailorMadeAssessment_FailureMechanismSectionResultNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate call = () => GrassCoverSlipOffOutwardsFailureMechanismSectionResultAssemblyFactory.AssembleTailorMadeAssessment(null);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("failureMechanismSectionResult", exception.ParamName);
+ }
+
+ [Test]
+ public void AssembleTailorMadeAssessment_WithInput_SetsInputOnCalculator()
+ {
+ // Setup
+ var sectionResult = new GrassCoverSlipOffOutwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection());
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance;
+ FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator;
+
+ // Call
+ GrassCoverSlipOffOutwardsFailureMechanismSectionResultAssemblyFactory.AssembleTailorMadeAssessment(sectionResult);
+
+ // Assert
+ Assert.AreEqual(sectionResult.TailorMadeAssessmentResult, calculator.TailorMadeAssessmentResultInput);
+ }
+ }
+
+ [Test]
+ public void AssembleTailorMadeAssessment_AssemblyRan_ReturnsOutput()
+ {
+ // Setup
+ var sectionResult = new GrassCoverSlipOffOutwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection());
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance;
+ FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator;
+
+ // Call
+ FailureMechanismSectionAssemblyCategoryGroup actualOutput =
+ GrassCoverSlipOffOutwardsFailureMechanismSectionResultAssemblyFactory.AssembleTailorMadeAssessment(sectionResult);
+
+ // Assert
+ FailureMechanismSectionAssemblyCategoryGroup? calculatorOutput = calculator.TailorMadeAssemblyCategoryOutput;
+ Assert.AreEqual(calculatorOutput, actualOutput);
+ }
+ }
+
+ [Test]
+ public void AssembleTailorMadeAssessment_CalculatorThrowsExceptions_ThrowsAssemblyException()
+ {
+ // Setup
+ var sectionResult = new GrassCoverSlipOffOutwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection());
+
+ using (new AssemblyToolCalculatorFactoryConfig())
+ {
+ var calculatorfactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance;
+ FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator;
+ calculator.ThrowExceptionOnCalculate = true;
+
+ // Call
+ TestDelegate call = () => GrassCoverSlipOffOutwardsFailureMechanismSectionResultAssemblyFactory.AssembleTailorMadeAssessment(sectionResult);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Exception innerException = exception.InnerException;
+ Assert.IsInstanceOf(innerException);
+ Assert.AreEqual(innerException.Message, exception.Message);
+ }
+ }
+
+ #endregion
}
}
\ No newline at end of file