Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStubTest.cs =================================================================== diff -u -r327af7122e878f80ede4c6d23162d5192f42ad37 -r37b7aaa490f9f15c5722f95917802dac6bd8318d --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStubTest.cs (.../FailureMechanismSectionAssemblyKernelStubTest.cs) (revision 327af7122e878f80ede4c6d23162d5192f42ad37) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStubTest.cs (.../FailureMechanismSectionAssemblyKernelStubTest.cs) (revision 37b7aaa490f9f15c5722f95917802dac6bd8318d) @@ -48,6 +48,14 @@ Assert.IsNull(kernel.SimpleAssessmentFailureMechanismsValidityOnlyInput); Assert.IsNull(kernel.DetailedAssessmentFailureMechanismFromProbabilityInput); Assert.IsNull(kernel.DetailedAssessmentFailureMechanismFromProbabilityWithLengthEffectInput); + Assert.IsNull(kernel.CombinedSimpleAssessmentInput); + Assert.IsNull(kernel.CombinedDetailedAssessmentInput); + Assert.IsNull(kernel.CombinedTailorMadeAssessmentInput); + Assert.IsNull(kernel.CombinedSimpleAssessmentGroupInput); + Assert.IsNull(kernel.CombinedDetailedAssessmentGroupInput); + Assert.IsNull(kernel.CombinedTailorMadeAssessmentGroupInput); + Assert.IsNull(kernel.FailureMechanismSectionAssemblyCategoryResult); + Assert.IsNull(kernel.FailureMechanismSectionAssemblyCategoryGroup); } #region Simple Assessment @@ -495,23 +503,78 @@ #region Combined Assessment [Test] - public void CombinedAssessmentFromFailureMechanismSectionResults_Always_ThrowNotImplementedException() + public void CombinedAssessmentFromFailureMechanismSectionResults_ThrowExceptionOnCalculateFalse_InputCorrectlySetToKernelAndCalculatedTrue() { // Setup + var random = new Random(11); + var simpleAssemblyResult = random.NextEnumValue(); + var detailedAssemblyResult = random.NextEnumValue(); + var tailorMadeAssemblyResult = random.NextEnumValue(); + var kernel = new FailureMechanismSectionAssemblyKernelStub(); // Call - TestDelegate test = () => kernel.CombinedAssessmentFromFailureMechanismSectionResults(0, 0, 0); + kernel.CombinedAssessmentFromFailureMechanismSectionResults(simpleAssemblyResult, detailedAssemblyResult, tailorMadeAssemblyResult); // Assert - Assert.Throws(test); + Assert.AreEqual(simpleAssemblyResult, kernel.CombinedSimpleAssessmentGroupInput); + Assert.AreEqual(detailedAssemblyResult, kernel.CombinedDetailedAssessmentGroupInput); + Assert.AreEqual(tailorMadeAssemblyResult, kernel.CombinedTailorMadeAssessmentGroupInput); + Assert.IsTrue(kernel.Calculated); } [Test] - public void CombinedAssessmentFromFailureMechanismSectionResultsWithCategories_ThrowExceptionOnCalculateFalse_InputCorrectlySetToKernelAndCalculatedTrue() + public void CombinedAssessmentFromFailureMechanismSectionResults_ThrowExceptionOnCalculateFalse_ReturnFailureMechanismSectionAssemblyCategoryResult() { // Setup var random = new Random(11); + var simpleAssemblyResult = random.NextEnumValue(); + var detailedAssemblyResult = random.NextEnumValue(); + var tailorMadeAssemblyResult = random.NextEnumValue(); + + var kernel = new FailureMechanismSectionAssemblyKernelStub(); + + // Call + CalculationOutput result = kernel.CombinedAssessmentFromFailureMechanismSectionResults( + simpleAssemblyResult, detailedAssemblyResult, tailorMadeAssemblyResult); + + // Assert + Assert.AreSame(kernel.FailureMechanismSectionAssemblyCategoryGroup, result); + } + + [Test] + public void CombinedAssessmentFromFailureMechanismSectionResults_ThrowExceptionOnCalculateTrue_ThrowsException() + { + // Setup + var random = new Random(11); + var simpleAssemblyResult = random.NextEnumValue(); + var detailedAssemblyResult = random.NextEnumValue(); + var tailorMadeAssemblyResult = random.NextEnumValue(); + + 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.CombinedSimpleAssessmentGroupInput); + Assert.IsNull(kernel.CombinedDetailedAssessmentGroupInput); + Assert.IsNull(kernel.CombinedTailorMadeAssessmentGroupInput); + Assert.IsFalse(kernel.Calculated); + Assert.IsNull(kernel.FailureMechanismSectionAssemblyCategoryGroup); + } + + [Test] + public void CombinedAssessmentFromFailureMechanismSectionResultsWithProbabilities_ThrowExceptionOnCalculateFalse_InputCorrectlySetToKernelAndCalculatedTrue() + { + // Setup + var random = new Random(11); var simpleAssemblyResult = new FailureMechanismSectionAssemblyCategoryResult( random.NextEnumValue(), Probability.NaN); @@ -538,7 +601,7 @@ } [Test] - public void CombinedAssessmentFromFailureMechanismSectionResults_ThrowExceptionOnCalculateFalse_ReturnFailureMechanismSectionAssemblyCategoryResult() + public void CombinedAssessmentFromFailureMechanismSectionResultsWithProbabilities_ThrowExceptionOnCalculateFalse_ReturnFailureMechanismSectionAssemblyCategoryResult() { // Setup var random = new Random(11); @@ -563,7 +626,7 @@ } [Test] - public void CombinedAssessmentFromFailureMechanismSectionResults_ThrowExceptionOnCalculateTrue_ThrowsException() + public void CombinedAssessmentFromFailureMechanismSectionResultsWithProbabilities_ThrowExceptionOnCalculateTrue_ThrowsException() { // Setup var random = new Random(11); Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStub.cs =================================================================== diff -u -r327af7122e878f80ede4c6d23162d5192f42ad37 -r37b7aaa490f9f15c5722f95917802dac6bd8318d --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStub.cs (.../FailureMechanismSectionAssemblyKernelStub.cs) (revision 327af7122e878f80ede4c6d23162d5192f42ad37) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Assembly/FailureMechanismSectionAssemblyKernelStub.cs (.../FailureMechanismSectionAssemblyKernelStub.cs) (revision 37b7aaa490f9f15c5722f95917802dac6bd8318d) @@ -67,6 +67,11 @@ /// Gets or sets the failure mechanism section assembly category result. /// public CalculationOutput FailureMechanismSectionAssemblyCategoryResult { get; set; } + + /// + /// Gets or sets the failure mechanism section assembly category group. + /// + public CalculationOutput FailureMechanismSectionAssemblyCategoryGroup { get; set; } /// /// Gets the simple assessment input used in @@ -83,6 +88,21 @@ /// public FailureMechanismSectionAssemblyCategoryResult CombinedTailorMadeAssessmentInput { get; private set; } + /// + /// Gets the simple assessment input used in + /// + public FailureMechanismSectionCategoryGroup? CombinedSimpleAssessmentGroupInput { get; private set; } + + /// + /// Gets the detailed assessment input used in + /// + public FailureMechanismSectionCategoryGroup? CombinedDetailedAssessmentGroupInput { get; private set; } + + /// + /// Gets the tailor made assessment input used in + /// + public FailureMechanismSectionCategoryGroup? CombinedTailorMadeAssessmentGroupInput { get; private set; } + public CalculationOutput SimpleAssessmentDirectFailureMechanisms(SimpleCalculationResult result) { if (ThrowExceptionOnCalculate) @@ -178,9 +198,19 @@ public CalculationOutput CombinedAssessmentFromFailureMechanismSectionResults(FailureMechanismSectionCategoryGroup resultSimpleAssessment, FailureMechanismSectionCategoryGroup resultDetailedAssessment, FailureMechanismSectionCategoryGroup resultTailorMadeAssessment) { - throw new NotImplementedException(); - } + if (ThrowExceptionOnCalculate) + { + throw new Exception("Message", new Exception()); + } + CombinedSimpleAssessmentGroupInput = resultSimpleAssessment; + CombinedDetailedAssessmentGroupInput = resultDetailedAssessment; + CombinedTailorMadeAssessmentGroupInput = resultTailorMadeAssessment; + + Calculated = true; + return FailureMechanismSectionAssemblyCategoryGroup; + } + public CalculationOutput CombinedAssessmentFromFailureMechanismSectionResults(FailureMechanismSectionAssemblyCategoryResult resultSimpleAssessment, FailureMechanismSectionAssemblyCategoryResult resultDetailedAssessment, FailureMechanismSectionAssemblyCategoryResult resultTailorMadeAssessment) { if (ThrowExceptionOnCalculate)