Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStubTest.cs =================================================================== diff -u -r6eebd6b6e1b612f30b3c52a1d6cb969b528c25c4 -r35aba6acd0f21c22843ddbf0ca6725c0decce192 --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStubTest.cs (.../FailureMechanismSectionAssemblyKernelStubTest.cs) (revision 6eebd6b6e1b612f30b3c52a1d6cb969b528c25c4) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStubTest.cs (.../FailureMechanismSectionAssemblyKernelStubTest.cs) (revision 35aba6acd0f21c22843ddbf0ca6725c0decce192) @@ -607,19 +607,74 @@ } [Test] - public void TailorMadeAssessmentDirectFailureMechanismsWithCategories_Always_ThrowNotImplementedException() + public void TailorMadeAssessmentDirectFailureMechanismsWithCategories_ThrowExceptionOnCalculateFalse_InputCorrectlySetToKernelAndCalculatedTrue() { // Setup + var random = new Random(39); + var result = random.NextEnumValue(); var kernel = new FailureMechanismSectionAssemblyKernelStub(); // Call - TestDelegate test = () => kernel.TailorMadeAssessmentDirectFailureMechanisms((TailorMadeCategoryCalculationResult) 0); + kernel.TailorMadeAssessmentDirectFailureMechanisms(result); // Assert - Assert.Throws(test); + Assert.AreEqual(result, kernel.TailorMadeCalculationInputFromCategoryResultInput); } [Test] + public void TailorMadeAssessmentDirectFailureMechanismsWithCategories_ThrowExceptionOnCalculateFalse_ReturnFailureMechanismSectionAssemblyCategoryResult() + { + // Setup + var random = new Random(39); + var kernel = new FailureMechanismSectionAssemblyKernelStub + { + ThrowExceptionOnCalculate = true + }; + + // Call + TestDelegate test = () => kernel.TailorMadeAssessmentDirectFailureMechanisms(random.NextEnumValue()); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("Message", exception.Message); + Assert.IsNotNull(exception.InnerException); + Assert.IsNull(kernel.TailorMadeCalculationInputFromProbabilityInput); + Assert.IsFalse(kernel.Calculated); + Assert.IsNull(kernel.FailureMechanismSectionAssemblyCategoryResult); + } + + [Test] + public void TailorMadeAssessmentDirectFailureMechanismsWithCategories_ThrowExceptionOnCalculateTrue_ThrowsException() + { + // Setup + var random = new Random(39); + var input = new TailorMadeCalculationInputFromProbability( + new TailorMadeProbabilityCalculationResult(new Probability(random.NextDouble())), + new[] + { + new FailureMechanismSectionCategory(random.NextEnumValue(), + new Probability(random.NextRoundedDouble(0.0, 0.5)), + new Probability(random.NextRoundedDouble(0.6, 1.0))) + }); + + 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.TailorMadeCalculationInputFromProbabilityInput); + Assert.IsFalse(kernel.Calculated); + Assert.IsNull(kernel.FailureMechanismSectionAssemblyCategoryResult); + } + + [Test] public void TailorMadeAssessmentDirectFailureMechanismsWithProbabilityAndLengthEffect_ThrowExceptionOnCalculateFalse_InputCorrectlySetToKernelAndCalculatedTrue() { // Setup Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStub.cs =================================================================== diff -u -r6eebd6b6e1b612f30b3c52a1d6cb969b528c25c4 -r35aba6acd0f21c22843ddbf0ca6725c0decce192 --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStub.cs (.../FailureMechanismSectionAssemblyKernelStub.cs) (revision 6eebd6b6e1b612f30b3c52a1d6cb969b528c25c4) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStub.cs (.../FailureMechanismSectionAssemblyKernelStub.cs) (revision 35aba6acd0f21c22843ddbf0ca6725c0decce192) @@ -59,6 +59,11 @@ public TailorMadeCalculationInputFromProbability TailorMadeCalculationInputFromProbabilityInput { get; private set; } /// + /// Gets the input used in . + /// + public TailorMadeCategoryCalculationResult TailorMadeCalculationInputFromCategoryResultInput { get; private set; } + + /// /// Gets the input used in . /// public TailorMadeCalculationInputFromProbabilityWithLengthEffectFactor TailorMadeCalculationInputFromProbabilityWithLengthEffectFactor { get; private set; } @@ -217,7 +222,14 @@ public CalculationOutput TailorMadeAssessmentDirectFailureMechanisms(TailorMadeCategoryCalculationResult result) { - throw new NotImplementedException(); + if (ThrowExceptionOnCalculate) + { + throw new Exception("Message", new Exception()); + } + + TailorMadeCalculationInputFromCategoryResultInput = result; + Calculated = true; + return FailureMechanismSectionAssemblyCategoryGroup; } public CalculationOutput TailorMadeAssessmentDirectFailureMechanisms(TailorMadeCalculationInputFromProbabilityWithLengthEffectFactor input)