Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStubTest.cs =================================================================== diff -u -r3910280908bf418e3ee2edcfe9b89939dcba25c7 -rb28519025c73dd13a32ac9eb30f66d894551f7d7 --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStubTest.cs (.../FailureMechanismSectionAssemblyKernelStubTest.cs) (revision 3910280908bf418e3ee2edcfe9b89939dcba25c7) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStubTest.cs (.../FailureMechanismSectionAssemblyKernelStubTest.cs) (revision b28519025c73dd13a32ac9eb30f66d894551f7d7) @@ -547,19 +547,70 @@ #region Tailor Made Assessment [Test] - public void TailorMadeAssessmentDirectFailureMechanisms_Always_ThrowNotImplementedException() + public void TailorMadeAssessmentDirectFailureMechanisms_ThrowExceptionOnCalculateFalse_InputCorrectlySetToKernelAndCalculatedTrue() { // Setup + var random = new Random(39); + var input = random.NextEnumValue(); + var kernel = new FailureMechanismSectionAssemblyKernelStub(); + // Precondition + Assert.IsFalse(kernel.Calculated); + // Call - TestDelegate test = () => kernel.TailorMadeAssessmentDirectFailureMechanisms((TailorMadeCalculationResult) 0); + kernel.TailorMadeAssessmentDirectFailureMechanisms(input); // Assert - Assert.Throws(test); + Assert.AreEqual(input, kernel.TailorMadeCalculationResultInput); + Assert.IsTrue(kernel.Calculated); } [Test] + public void TailorMadeAssessmentDirectFailureMechanisms_ThrowExceptionOnCalculateFalse_ReturnFailureMechanismSectionAssemblyCategoryResult() + { + // Setup + var random = new Random(39); + var input = random.NextEnumValue(); + + var kernel = new FailureMechanismSectionAssemblyKernelStub + { + FailureMechanismSectionAssemblyCategoryGroup = new CalculationOutput( + random.NextEnumValue()) + }; + + // Call + CalculationOutput result = kernel.TailorMadeAssessmentDirectFailureMechanisms(input); + + // Assert + Assert.AreSame(kernel.FailureMechanismSectionAssemblyCategoryGroup, result); + } + + [Test] + public void TailorMadeAssessmentDirectFailureMechanisms_ThrowExceptionOnCalculateTrue_ThrowsException() + { + // Setup + var random = new Random(39); + var input = random.NextEnumValue(); + + var kernel = new FailureMechanismSectionAssemblyKernelStub + { + ThrowExceptionOnCalculate = true + }; + + // Call + TestDelegate test = () => kernel.TailorMadeAssessmentDirectFailureMechanisms(input); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("Message", exception.Message); + Assert.IsNotNull(exception.InnerException); + Assert.IsNull(kernel.TailorMadeCalculationResultInput); + Assert.IsFalse(kernel.Calculated); + Assert.IsNull(kernel.FailureMechanismSectionAssemblyCategoryGroup); + } + + [Test] public void TailorMadeAssessmentIndirectFailureMechanisms_Always_ThrowNotImplementedException() { // Setup Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStub.cs =================================================================== diff -u -r3910280908bf418e3ee2edcfe9b89939dcba25c7 -rb28519025c73dd13a32ac9eb30f66d894551f7d7 --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStub.cs (.../FailureMechanismSectionAssemblyKernelStub.cs) (revision 3910280908bf418e3ee2edcfe9b89939dcba25c7) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStub.cs (.../FailureMechanismSectionAssemblyKernelStub.cs) (revision b28519025c73dd13a32ac9eb30f66d894551f7d7) @@ -59,6 +59,11 @@ public DetailedCalculationInputFromProbabilityWithLengthEffect DetailedAssessmentFailureMechanismFromProbabilityWithLengthEffectInput { get; private set; } /// + /// Gets the input used in . + /// + public TailorMadeCalculationResult? TailorMadeCalculationResultInput { get; private set; } + + /// /// Gets the input used in . /// public TailorMadeCalculationInputFromProbability TailorMadeCalculationInputFromProbabilityInput { get; private set; } @@ -212,7 +217,14 @@ public CalculationOutput TailorMadeAssessmentDirectFailureMechanisms(TailorMadeCalculationResult result) { - throw new NotImplementedException(); + if (ThrowExceptionOnCalculate) + { + throw new Exception("Message", new Exception()); + } + + TailorMadeCalculationResultInput = result; + Calculated = true; + return FailureMechanismSectionAssemblyCategoryGroup; } public CalculationOutput TailorMadeAssessmentIndirectFailureMechanisms(TailorMadeCalculationResult result)