Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStubTest.cs =================================================================== diff -u -r65088ddf1c49c4df81c8129a7e0ca158455c4281 -r327af7122e878f80ede4c6d23162d5192f42ad37 --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStubTest.cs (.../FailureMechanismSectionAssemblyKernelStubTest.cs) (revision 65088ddf1c49c4df81c8129a7e0ca158455c4281) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStubTest.cs (.../FailureMechanismSectionAssemblyKernelStubTest.cs) (revision 327af7122e878f80ede4c6d23162d5192f42ad37) @@ -508,18 +508,94 @@ } [Test] - public void CombinedAssessmentFromFailureMechanismSectionResultsWithCategories_Always_ThrowNotImplementedException() + public void CombinedAssessmentFromFailureMechanismSectionResultsWithCategories_ThrowExceptionOnCalculateFalse_InputCorrectlySetToKernelAndCalculatedTrue() { // Setup + var random = new Random(11); + var simpleAssemblyResult = new FailureMechanismSectionAssemblyCategoryResult( + random.NextEnumValue(), + Probability.NaN); + var detailedAssemblyResult = new FailureMechanismSectionAssemblyCategoryResult( + random.NextEnumValue(), + Probability.NaN); + var tailorMadeAssemblyResult = new FailureMechanismSectionAssemblyCategoryResult( + random.NextEnumValue(), + Probability.NaN); + var kernel = new FailureMechanismSectionAssemblyKernelStub(); + // Precondition + Assert.IsFalse(kernel.Calculated); + // Call - TestDelegate test = () => kernel.CombinedAssessmentFromFailureMechanismSectionResults(null, null, null); + kernel.CombinedAssessmentFromFailureMechanismSectionResults(simpleAssemblyResult, detailedAssemblyResult, tailorMadeAssemblyResult); // Assert - Assert.Throws(test); + Assert.AreSame(simpleAssemblyResult, kernel.CombinedSimpleAssessmentInput); + Assert.AreSame(detailedAssemblyResult, kernel.CombinedDetailedAssessmentInput); + Assert.AreSame(tailorMadeAssemblyResult, kernel.CombinedTailorMadeAssessmentInput); + Assert.IsTrue(kernel.Calculated); } + [Test] + public void CombinedAssessmentFromFailureMechanismSectionResults_ThrowExceptionOnCalculateFalse_ReturnFailureMechanismSectionAssemblyCategoryResult() + { + // Setup + var random = new Random(11); + var simpleAssemblyResult = new FailureMechanismSectionAssemblyCategoryResult( + random.NextEnumValue(), + Probability.NaN); + var detailedAssemblyResult = new FailureMechanismSectionAssemblyCategoryResult( + random.NextEnumValue(), + Probability.NaN); + var tailorMadeAssemblyResult = new FailureMechanismSectionAssemblyCategoryResult( + random.NextEnumValue(), + Probability.NaN); + + var kernel = new FailureMechanismSectionAssemblyKernelStub(); + + // Call + CalculationOutput result = kernel.CombinedAssessmentFromFailureMechanismSectionResults( + simpleAssemblyResult, detailedAssemblyResult, tailorMadeAssemblyResult); + + // Assert + Assert.AreSame(kernel.FailureMechanismSectionAssemblyCategoryResult, result); + } + + [Test] + public void CombinedAssessmentFromFailureMechanismSectionResults_ThrowExceptionOnCalculateTrue_ThrowsException() + { + // Setup + var random = new Random(11); + var simpleAssemblyResult = new FailureMechanismSectionAssemblyCategoryResult( + random.NextEnumValue(), + Probability.NaN); + var detailedAssemblyResult = new FailureMechanismSectionAssemblyCategoryResult( + random.NextEnumValue(), + Probability.NaN); + var tailorMadeAssemblyResult = new FailureMechanismSectionAssemblyCategoryResult( + random.NextEnumValue(), + Probability.NaN); + + var kernel = new FailureMechanismSectionAssemblyKernelStub + { + ThrowExceptionOnCalculate = true + }; + + // Call + TestDelegate test = () => kernel.CombinedAssessmentFromFailureMechanismSectionResults(simpleAssemblyResult, detailedAssemblyResult, tailorMadeAssemblyResult); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("Message", exception.Message); + Assert.IsNotNull(exception.InnerException); + Assert.IsNull(kernel.CombinedSimpleAssessmentInput); + Assert.IsNull(kernel.CombinedDetailedAssessmentInput); + Assert.IsNull(kernel.CombinedTailorMadeAssessmentInput); + Assert.IsFalse(kernel.Calculated); + Assert.IsNull(kernel.FailureMechanismSectionAssemblyCategoryResult); + } + #endregion } } \ No newline at end of file Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStub.cs =================================================================== diff -u -r65088ddf1c49c4df81c8129a7e0ca158455c4281 -r327af7122e878f80ede4c6d23162d5192f42ad37 --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStub.cs (.../FailureMechanismSectionAssemblyKernelStub.cs) (revision 65088ddf1c49c4df81c8129a7e0ca158455c4281) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStub.cs (.../FailureMechanismSectionAssemblyKernelStub.cs) (revision 327af7122e878f80ede4c6d23162d5192f42ad37) @@ -68,6 +68,21 @@ /// public CalculationOutput FailureMechanismSectionAssemblyCategoryResult { get; set; } + /// + /// Gets the simple assessment input used in + /// + public FailureMechanismSectionAssemblyCategoryResult CombinedSimpleAssessmentInput { get; private set; } + + /// + /// Gets the detailed assessment input used in + /// + public FailureMechanismSectionAssemblyCategoryResult CombinedDetailedAssessmentInput { get; private set; } + + /// + /// Gets the tailor made assessment input used in + /// + public FailureMechanismSectionAssemblyCategoryResult CombinedTailorMadeAssessmentInput { get; private set; } + public CalculationOutput SimpleAssessmentDirectFailureMechanisms(SimpleCalculationResult result) { if (ThrowExceptionOnCalculate) @@ -168,7 +183,17 @@ public CalculationOutput CombinedAssessmentFromFailureMechanismSectionResults(FailureMechanismSectionAssemblyCategoryResult resultSimpleAssessment, FailureMechanismSectionAssemblyCategoryResult resultDetailedAssessment, FailureMechanismSectionAssemblyCategoryResult resultTailorMadeAssessment) { - throw new NotImplementedException(); + if (ThrowExceptionOnCalculate) + { + throw new Exception("Message", new Exception()); + } + + CombinedSimpleAssessmentInput = resultSimpleAssessment; + CombinedDetailedAssessmentInput = resultDetailedAssessment; + CombinedTailorMadeAssessmentInput = resultTailorMadeAssessment; + + Calculated = true; + return FailureMechanismSectionAssemblyCategoryResult; } } } \ No newline at end of file