Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.cs =================================================================== diff -u -rc7425b8f799095f2dc812351e14103931c672fba -reb90f0ffffa5e6028fed5b94f267e30358047629 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.cs) (revision c7425b8f799095f2dc812351e14103931c672fba) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.cs) (revision eb90f0ffffa5e6028fed5b94f267e30358047629) @@ -73,8 +73,8 @@ /// /// The failure mechanism section result to /// assemble the detailed assembly for. - /// The failure mechanism. - /// The . + /// The failure mechanism belonging to this calculation. + /// The belonging to this calculation. /// A . /// Thrown when any parameter is null. /// Thrown when Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactoryTest.cs =================================================================== diff -u -rad479a80b6db7879b935aecaca743c39615ec977 -reb90f0ffffa5e6028fed5b94f267e30358047629 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactoryTest.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactoryTest.cs) (revision ad479a80b6db7879b935aecaca743c39615ec977) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactoryTest.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactoryTest.cs) (revision eb90f0ffffa5e6028fed5b94f267e30358047629) @@ -20,13 +20,17 @@ // All rights reserved. using System; +using System.Linq; using Core.Common.TestUtil; using NUnit.Framework; +using Rhino.Mocks; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators.Assembly; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Contribution; using Ringtoets.Common.Data.Exceptions; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.TestUtil; @@ -37,6 +41,8 @@ [TestFixture] public class GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactoryTest { + #region Simple Assessment + [Test] public void AssembleSimpleAssessment_FailureMechanismSectionResultNull_ThrowsArgumentNullException() { @@ -85,7 +91,7 @@ FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; // Call - FailureMechanismSectionAssembly actualOutput = + FailureMechanismSectionAssembly actualOutput = GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.AssembleSimpleAssessment(sectionResult); // Assert @@ -117,5 +123,180 @@ Assert.AreEqual(innerException.Message, exception.Message); } } + + #endregion + + #region Detailed Assessment + + [Test] + public void AssembleDetailedAssembly_FailureMechanismSectionResultNull_ThrowsArgumentNullException() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + // Call + TestDelegate call = () => GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.AssembleDetailedAssembly( + null, + new GrassCoverErosionInwardsFailureMechanism(), + assessmentSection); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("failureMechanismSectionResult", exception.ParamName); + mocks.VerifyAll(); + } + + [Test] + public void AssembleDetailedAssembly_FailureMechanismNull_ThrowsArgumentNullException() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + // Call + TestDelegate call = () => GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.AssembleDetailedAssembly( + new GrassCoverErosionInwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()), + null, + assessmentSection); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("failureMechanism", exception.ParamName); + mocks.VerifyAll(); + } + + [Test] + public void AssembleDetailedAssembly_AssessmentSectionNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.AssembleDetailedAssembly( + new GrassCoverErosionInwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()), + new GrassCoverErosionInwardsFailureMechanism(), + null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("assessmentSection", exception.ParamName); + } + + [Test] + public void AssembleDetailedAssembly_WithInput_SetsInputOnCalculator() + { + // Setup + var random = new Random(21); + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + assessmentSection.Stub(a => a.FailureMechanismContribution).Return(new FailureMechanismContribution( + Enumerable.Empty(), + random.Next(0, 100), + random.NextRoundedDouble(0.06, 0.1), + random.NextRoundedDouble(0.00001, 0.05))); + mocks.ReplayAll(); + + var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); + var sectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) + { + SimpleAssessmentResult = random.NextEnumValue() + }; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + + // Call + GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.AssembleDetailedAssembly( + sectionResult, + failureMechanism, + assessmentSection); + + // Assert + Assert.AreEqual(sectionResult.GetDetailedAssessmentProbability(failureMechanism, assessmentSection), + calculator.DetailedAssessmentProbabilityInput); + Assert.IsNotNull(calculator.DetailedAssessmentCategoriesInput); + mocks.VerifyAll(); + } + } + + [Test] + public void AssembleDetailedAssembly_AssemblyRan_ReturnsOutput() + { + // Setup + var random = new Random(21); + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + assessmentSection.Stub(a => a.FailureMechanismContribution).Return(new FailureMechanismContribution( + Enumerable.Empty(), + random.Next(0, 100), + random.NextRoundedDouble(0.06, 0.1), + random.NextRoundedDouble(0.00001, 0.05))); + mocks.ReplayAll(); + + var sectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) + { + SimpleAssessmentResult = random.NextEnumValue() + }; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + + // Call + FailureMechanismSectionAssembly actualOutput = + GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.AssembleDetailedAssembly( + sectionResult, + new GrassCoverErosionInwardsFailureMechanism(), + assessmentSection); + + // Assert + FailureMechanismSectionAssembly calculatorOutput = calculator.DetailedAssessmentAssemblyOutput; + Assert.AreSame(calculatorOutput, actualOutput); + } + } + + [Test] + public void AssembleDetailedAssembly_CalculatorThrowsExceptions_ThrowsAssemblyFactoryException() + { + // Setup + var random = new Random(21); + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + assessmentSection.Stub(a => a.FailureMechanismContribution).Return(new FailureMechanismContribution( + Enumerable.Empty(), + random.Next(0, 100), + random.NextRoundedDouble(0.06, 0.1), + random.NextRoundedDouble(0.00001, 0.05))); + mocks.ReplayAll(); + + var sectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) + { + SimpleAssessmentResult = random.NextEnumValue() + }; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + calculator.ThrowExceptionOnCalculate = true; + + // Call + TestDelegate call = () => GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.AssembleDetailedAssembly( + sectionResult, + new GrassCoverErosionInwardsFailureMechanism(), + assessmentSection); + + // Assert + var exception = Assert.Throws(call); + Exception innerException = exception.InnerException; + Assert.IsInstanceOf(innerException); + Assert.AreEqual(innerException.Message, exception.Message); + } + } + + #endregion } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultAssemblyFactory.cs =================================================================== diff -u -r9871a2374e0f08658f7bec58412958b35f8a849b -reb90f0ffffa5e6028fed5b94f267e30358047629 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultAssemblyFactory.cs (.../MacroStabilityInwardsFailureMechanismSectionResultAssemblyFactory.cs) (revision 9871a2374e0f08658f7bec58412958b35f8a849b) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultAssemblyFactory.cs (.../MacroStabilityInwardsFailureMechanismSectionResultAssemblyFactory.cs) (revision eb90f0ffffa5e6028fed5b94f267e30358047629) @@ -75,8 +75,8 @@ /// The failure mechanism section result to /// assemble the detailed assembly for. /// The calculations belonging to this section. - /// The failure mechanism. - /// The . + /// The failure mechanism belonging to this calculation. + /// The belonging to this calculation. /// A . /// Thrown when any parameter is null. /// Thrown when Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSectionResultAssemblyFactory.cs =================================================================== diff -u -r7cccb012b51218b8989007633d8338eaf435d6f4 -reb90f0ffffa5e6028fed5b94f267e30358047629 --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSectionResultAssemblyFactory.cs (.../PipingFailureMechanismSectionResultAssemblyFactory.cs) (revision 7cccb012b51218b8989007633d8338eaf435d6f4) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSectionResultAssemblyFactory.cs (.../PipingFailureMechanismSectionResultAssemblyFactory.cs) (revision eb90f0ffffa5e6028fed5b94f267e30358047629) @@ -75,8 +75,8 @@ /// The failure mechanism section result to /// assemble the detailed assembly for. /// The calculations belonging to this section. - /// The failure mechanism. - /// The . + /// The failure mechanism belonging to this calculation. + /// The belonging to this calculation. /// A . /// Thrown when any parameter is null. /// Thrown when