Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStubTest.cs =================================================================== diff -u -r9d327503e94b4ecf3dcec82d1479e1fba59faab9 -r6eebd6b6e1b612f30b3c52a1d6cb969b528c25c4 --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStubTest.cs (.../FailureMechanismSectionAssemblyKernelStubTest.cs) (revision 9d327503e94b4ecf3dcec82d1479e1fba59faab9) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStubTest.cs (.../FailureMechanismSectionAssemblyKernelStubTest.cs) (revision 6eebd6b6e1b612f30b3c52a1d6cb969b528c25c4) @@ -331,19 +331,79 @@ } [Test] - public void DetailedAssessmentDirectFailureMechanismsWithBoundaries_Always_ThrowNotImplementedException() + public void DetailedAssessmentDirectFailureMechanismsWithBoundaries_ThrowExceptionOnCalculateFalse_InputCorrectlySetToKernelAndCalculatedTrue() { // Setup + var random = new Random(39); + var input = new DetailedCategoryBoundariesCalculationResult( + random.NextEnumValue(), random.NextEnumValue(), + random.NextEnumValue(), random.NextEnumValue(), + random.NextEnumValue()); + var kernel = new FailureMechanismSectionAssemblyKernelStub(); + // Precondition + Assert.IsFalse(kernel.Calculated); + // Call - TestDelegate test = () => kernel.DetailedAssessmentDirectFailureMechanisms((DetailedCategoryBoundariesCalculationResult) null); + kernel.DetailedAssessmentDirectFailureMechanisms(input); // Assert - Assert.Throws(test); + Assert.AreSame(input, kernel.DetailedAssessmentFailureMechanismFromCategoriesInput); + Assert.IsTrue(kernel.Calculated); } [Test] + public void DetailedAssessmentDirectFailureMechanismsWithBoundaries_ThrowExceptionOnCalculateFalse_ReturnFailureMechanismSectionAssemblyCategoryResult() + { + // Setup + var random = new Random(39); + var input = new DetailedCategoryBoundariesCalculationResult( + random.NextEnumValue(), random.NextEnumValue(), + random.NextEnumValue(), random.NextEnumValue(), + random.NextEnumValue()); + + var kernel = new FailureMechanismSectionAssemblyKernelStub + { + FailureMechanismSectionAssemblyCategoryGroup = new CalculationOutput( + random.NextEnumValue()) + }; + + // Call + CalculationOutput result = kernel.DetailedAssessmentDirectFailureMechanisms(input); + + // Assert + Assert.AreSame(kernel.FailureMechanismSectionAssemblyCategoryGroup, result); + } + + [Test] + public void DetailedAssessmentDirectFailureMechanismsWithBoundaries_ThrowExceptionOnCalculateTrue_ThrowsException() + { + // Setup + var random = new Random(39); + var input = new DetailedCategoryBoundariesCalculationResult( + random.NextEnumValue(), random.NextEnumValue(), + random.NextEnumValue(), random.NextEnumValue(), + random.NextEnumValue()); + + var kernel = new FailureMechanismSectionAssemblyKernelStub + { + ThrowExceptionOnCalculate = true + }; + + // Call + TestDelegate test = () => kernel.DetailedAssessmentDirectFailureMechanisms(input); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("Message", exception.Message); + Assert.IsNotNull(exception.InnerException); + Assert.IsNull(kernel.DetailedAssessmentFailureMechanismFromCategoriesInput); + Assert.IsFalse(kernel.Calculated); + Assert.IsNull(kernel.FailureMechanismSectionAssemblyCategoryGroup); + } + + [Test] public void DetailedAssessmentDirectFailureMechanismsWithLengthEffect_ThrowExceptionOnCalculateFalse_InputCorrectlySetToKernelAndCalculatedTrue() { // Setup Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStub.cs =================================================================== diff -u -r9d327503e94b4ecf3dcec82d1479e1fba59faab9 -r6eebd6b6e1b612f30b3c52a1d6cb969b528c25c4 --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStub.cs (.../FailureMechanismSectionAssemblyKernelStub.cs) (revision 9d327503e94b4ecf3dcec82d1479e1fba59faab9) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStub.cs (.../FailureMechanismSectionAssemblyKernelStub.cs) (revision 6eebd6b6e1b612f30b3c52a1d6cb969b528c25c4) @@ -64,6 +64,11 @@ public TailorMadeCalculationInputFromProbabilityWithLengthEffectFactor TailorMadeCalculationInputFromProbabilityWithLengthEffectFactor { get; private set; } /// + /// Gets the input used in . + /// + public DetailedCategoryBoundariesCalculationResult DetailedAssessmentFailureMechanismFromCategoriesInput { get; private set; } + + /// /// Gets a value indicating whether a calculation was called or not. /// public bool Calculated { get; private set; } @@ -166,7 +171,14 @@ public CalculationOutput DetailedAssessmentDirectFailureMechanisms(DetailedCategoryBoundariesCalculationResult calculationResults) { - throw new NotImplementedException(); + if (ThrowExceptionOnCalculate) + { + throw new Exception("Message", new Exception()); + } + + DetailedAssessmentFailureMechanismFromCategoriesInput = calculationResults; + Calculated = true; + return FailureMechanismSectionAssemblyCategoryGroup; } public CalculationOutput DetailedAssessmentDirectFailureMechanisms(DetailedCalculationInputFromProbabilityWithLengthEffect input)