Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismAssemblyFactory.cs =================================================================== diff -u -r8a84e69fe9834dc4bb5e3dd84240fb1de3a4280e -r879b557f344d372b856abef554d182ef6d264cda --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismAssemblyFactory.cs (.../MacroStabilityInwardsFailureMechanismAssemblyFactory.cs) (revision 8a84e69fe9834dc4bb5e3dd84240fb1de3a4280e) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismAssemblyFactory.cs (.../MacroStabilityInwardsFailureMechanismAssemblyFactory.cs) (revision 879b557f344d372b856abef554d182ef6d264cda) @@ -30,6 +30,7 @@ using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; using Ringtoets.Common.Data.Probability; +using Ringtoets.Common.Primitives; namespace Ringtoets.MacroStabilityInwards.Data { @@ -213,19 +214,24 @@ throw new ArgumentNullException(nameof(assessmentSection)); } - FailureMechanismSectionAssembly simpleAssembly = AssembleSimpleAssessment(failureMechanismSectionResult); - FailureMechanismSectionAssembly detailedAssembly = AssembleDetailedAssessment( - failureMechanismSectionResult, calculationScenarios, failureMechanism, assessmentSection); - FailureMechanismSectionAssembly tailorMadeAssembly = AssembleTailorMadeAssessment( - failureMechanismSectionResult, failureMechanism, assessmentSection); - IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismSectionAssemblyCalculator calculator = calculatorFactory.CreateFailureMechanismSectionAssemblyCalculator(AssemblyToolKernelFactory.Instance); try { - return calculator.AssembleCombined(simpleAssembly, detailedAssembly, tailorMadeAssembly); + FailureMechanismSectionAssembly simpleAssembly = AssembleSimpleAssessment(failureMechanismSectionResult); + + if (failureMechanismSectionResult.SimpleAssessmentResult == SimpleAssessmentResultType.ProbabilityNegligible || + failureMechanismSectionResult.SimpleAssessmentResult == SimpleAssessmentResultType.NotApplicable) + { + return calculator.AssembleCombined(simpleAssembly); + } + + return calculator.AssembleCombined( + simpleAssembly, + AssembleDetailedAssessment(failureMechanismSectionResult, calculationScenarios, failureMechanism, assessmentSection), + AssembleTailorMadeAssessment(failureMechanismSectionResult, failureMechanism, assessmentSection)); } catch (FailureMechanismSectionAssemblyCalculatorException e) { Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -r1ccc4cae6b203b1f7791833ab1ad0bcba0a9757f -r879b557f344d372b856abef554d182ef6d264cda --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs (.../MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs) (revision 1ccc4cae6b203b1f7791833ab1ad0bcba0a9757f) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs (.../MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs) (revision 879b557f344d372b856abef554d182ef6d264cda) @@ -579,7 +579,9 @@ } [Test] - public void AssembleCombinedAssessment_WithInput_SetsInputOnCalculator() + [TestCase(SimpleAssessmentResultType.None)] + [TestCase(SimpleAssessmentResultType.AssessFurther)] + public void AssembleCombinedAssessment_WithInputSimpleAssemblyNoneOrAssessFurther_SetsInputOnCalculator(SimpleAssessmentResultType simpleAssessmentResult) { // Setup var failureMechanism = new MacroStabilityInwardsFailureMechanism(); @@ -588,7 +590,10 @@ IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); mocks.ReplayAll(); - var sectionResult = new MacroStabilityInwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); + var sectionResult = new MacroStabilityInwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) + { + SimpleAssessmentResult = simpleAssessmentResult + }; using (new AssemblyToolCalculatorFactoryConfig()) { @@ -623,6 +628,47 @@ } [Test] + [TestCase(SimpleAssessmentResultType.NotApplicable)] + [TestCase(SimpleAssessmentResultType.ProbabilityNegligible)] + public void AssembleCombinedAssessment_WithInputSimpleAssemblyNotApplicableOrProbabilityNegligible_SetsInputOnCalculator( + SimpleAssessmentResultType simpleAssessmentResult) + { + // Setup + var failureMechanism = new MacroStabilityInwardsFailureMechanism(); + + var mocks = new MockRepository(); + IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); + mocks.ReplayAll(); + + var sectionResult = new MacroStabilityInwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) + { + SimpleAssessmentResult = simpleAssessmentResult + }; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + + // Call + MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleCombinedAssessment( + sectionResult, + Enumerable.Empty(), + failureMechanism, + assessmentSection); + + // Assert + FailureMechanismSectionAssembly expectedSimpleAssembly = MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleSimpleAssessment( + sectionResult); + + AssemblyToolTestHelper.AssertAreEqual(expectedSimpleAssembly, calculator.CombinedSimpleAssemblyInput); + Assert.IsNull(calculator.CombinedDetailedAssemblyInput); + Assert.IsNull(calculator.CombinedTailorMadeAssemblyInput); + mocks.VerifyAll(); + } + } + + [Test] public void AssembleCombinedAssessment_AssemblyRan_ReturnsOutput() { // Setup