Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Data/StabilityPointStructuresFailureMechanismAssemblyFactory.cs =================================================================== diff -u -r8a84e69fe9834dc4bb5e3dd84240fb1de3a4280e -r4fc5b1e9f92137bc06cf948dc2652c8aa6c9297f --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Data/StabilityPointStructuresFailureMechanismAssemblyFactory.cs (.../StabilityPointStructuresFailureMechanismAssemblyFactory.cs) (revision 8a84e69fe9834dc4bb5e3dd84240fb1de3a4280e) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Data/StabilityPointStructuresFailureMechanismAssemblyFactory.cs (.../StabilityPointStructuresFailureMechanismAssemblyFactory.cs) (revision 4fc5b1e9f92137bc06cf948dc2652c8aa6c9297f) @@ -29,6 +29,7 @@ using Ringtoets.Common.Data.AssemblyTool; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; +using Ringtoets.Common.Primitives; namespace Ringtoets.StabilityPointStructures.Data { @@ -196,17 +197,23 @@ throw new ArgumentNullException(nameof(assessmentSection)); } - FailureMechanismSectionAssembly simpleAssembly = AssembleSimpleAssessment(failureMechanismSectionResult); - FailureMechanismSectionAssembly detailedAssembly = AssembleDetailedAssessment(failureMechanismSectionResult, 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 == SimpleAssessmentValidityOnlyResultType.NotApplicable) + { + return calculator.AssembleCombined(simpleAssembly); + } + + return calculator.AssembleCombined( + simpleAssembly, + AssembleDetailedAssessment(failureMechanismSectionResult, failureMechanism, assessmentSection), + AssembleTailorMadeAssessment(failureMechanismSectionResult, failureMechanism, assessmentSection)); } catch (FailureMechanismSectionAssemblyCalculatorException e) { Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Data.Test/StabilityPointStructuresFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -r7d14a67ab314b9b782bbaefe3bcdd6459fa1c5e3 -r4fc5b1e9f92137bc06cf948dc2652c8aa6c9297f --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Data.Test/StabilityPointStructuresFailureMechanismAssemblyFactoryTest.cs (.../StabilityPointStructuresFailureMechanismAssemblyFactoryTest.cs) (revision 7d14a67ab314b9b782bbaefe3bcdd6459fa1c5e3) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Data.Test/StabilityPointStructuresFailureMechanismAssemblyFactoryTest.cs (.../StabilityPointStructuresFailureMechanismAssemblyFactoryTest.cs) (revision 4fc5b1e9f92137bc06cf948dc2652c8aa6c9297f) @@ -504,7 +504,10 @@ } [Test] - public void AssembleCombinedAssessment_WithInput_SetsInputOnCalculator() + [TestCase(SimpleAssessmentValidityOnlyResultType.None)] + [TestCase(SimpleAssessmentValidityOnlyResultType.Applicable)] + public void AssembleCombinedAssessment_WithInputSimpleAssemblyNoneOrApplicable_SetsInputOnCalculator( + SimpleAssessmentValidityOnlyResultType simpleAssessmentResult) { // Setup var failureMechanism = new StabilityPointStructuresFailureMechanism(); @@ -513,7 +516,10 @@ IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); mocks.ReplayAll(); - var sectionResult = new StabilityPointStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); + var sectionResult = new StabilityPointStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) + { + SimpleAssessmentResult = simpleAssessmentResult + }; using (new AssemblyToolCalculatorFactoryConfig()) { @@ -546,6 +552,43 @@ } [Test] + public void AssembleCombinedAssessment_WithInputSimpleAssemblyNotApplicable_SetsInputOnCalculator() + { + // Setup + var failureMechanism = new StabilityPointStructuresFailureMechanism(); + + var mocks = new MockRepository(); + IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); + mocks.ReplayAll(); + + var sectionResult = new StabilityPointStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) + { + SimpleAssessmentResult = SimpleAssessmentValidityOnlyResultType.NotApplicable + }; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + + // Call + StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( + sectionResult, + failureMechanism, + assessmentSection); + + // Assert + FailureMechanismSectionAssembly expectedSimpleAssembly = StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleSimpleAssessment( + sectionResult); + + AssemblyToolTestHelper.AssertAreEqual(expectedSimpleAssembly, calculator.CombinedSimpleAssemblyInput); + Assert.IsNull(calculator.CombinedDetailedAssemblyInput); + Assert.IsNull(calculator.CombinedTailorMadeAssemblyInput); + mocks.VerifyAll(); + } + } + + [Test] public void AssembleCombinedAssessment_AssemblyRan_ReturnsOutput() { // Setup