Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Assembly/AssessmentSectionAssemblyFactoryTest.cs =================================================================== diff -u -r0e747c4f97f5b778258b5406289a4942ec56f34d -r9310e768472e223c33bb40fe415d22e5d3ee5aa6 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Assembly/AssessmentSectionAssemblyFactoryTest.cs (.../AssessmentSectionAssemblyFactoryTest.cs) (revision 0e747c4f97f5b778258b5406289a4942ec56f34d) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Assembly/AssessmentSectionAssemblyFactoryTest.cs (.../AssessmentSectionAssemblyFactoryTest.cs) (revision 9310e768472e223c33bb40fe415d22e5d3ee5aa6) @@ -1387,8 +1387,120 @@ } } + #region Manual Assembly Used + + #region With Probability + + [Test] + public void GivenAssessmentSectionWithPipingConfigured_WhenAssemblingAssessmentSectionAndUseManualTrue_ThenInputSetOnCalculator() + { + // Given + AssessmentSection assessmentSection = CreateAssessmentSection(); + PipingFailureMechanism failureMechanism = assessmentSection.Piping; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + PipingFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyProbability = true; + double probability = new Random(39).NextDouble(); + sectionResult.ManualAssemblyProbability = probability; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // When + AssessmentSectionAssemblyFactory.AssembleAssessmentSection(assessmentSection, true); + + // Then + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + Assert.AreEqual(probability, failureMechanismSectionAssemblyCalculator.ManualAssemblyProbabilityInput); + } + } + + [Test] + public void GivenAssessmentSectionWithPipingConfigured_WhenAssemblingAssessmentSectionAndUseManualFalse_ThenNoInputSetOnCalculator() + { + // Given + AssessmentSection assessmentSection = CreateAssessmentSection(); + PipingFailureMechanism failureMechanism = assessmentSection.Piping; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + PipingFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyProbability = true; + double probability = new Random(39).NextDouble(); + sectionResult.ManualAssemblyProbability = probability; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // When + AssessmentSectionAssemblyFactory.AssembleAssessmentSection(assessmentSection, false); + + // Then + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + Assert.IsNull(failureMechanismSectionAssemblyCalculator.ManualAssemblyAssemblyOutput); + } + } + #endregion + #region Without Probability + + [Test] + public void GivenAssessmentSectionWithDuneErosionConfigured_WhenAssemblingAssessmentSectionAndUseManualTrue_ThenInputSetOnCalculator() + { + // Given + AssessmentSection assessmentSection = CreateIrrelevantAssessmentSection(); + DuneErosionFailureMechanism failureMechanism = assessmentSection.DuneErosion; + failureMechanism.IsRelevant = true; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + DuneErosionFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyCategoryGroup = true; + sectionResult.ManualAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.Vv; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // When + AssessmentSectionAssemblyFactory.AssembleAssessmentSection(assessmentSection, true); + + // Then + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; + Assert.AreEqual(sectionResult.ManualAssemblyCategoryGroup, failureMechanismAssemblyCalculator.FailureMechanismSectionCategories.Single()); + } + } + + [Test] + public void GivenAssessmentSectionWithDuneErosionConfigured_WhenAssemblingAssessmentSectionAndUseManualFalse_ThenNoInputSetOnCalculator() + { + // Given + AssessmentSection assessmentSection = CreateIrrelevantAssessmentSection(); + DuneErosionFailureMechanism failureMechanism = assessmentSection.DuneErosion; + failureMechanism.IsRelevant = true; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + DuneErosionFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyCategoryGroup = true; + sectionResult.ManualAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.Vv; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // When + AssessmentSectionAssemblyFactory.AssembleAssessmentSection(assessmentSection, false); + + // Then + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; + Assert.AreEqual(FailureMechanismSectionAssemblyCategoryGroup.Iv, failureMechanismAssemblyCalculator.FailureMechanismSectionCategories.Single()); + } + } + + #endregion + + #endregion + + #endregion + #region Assemble Combined Per Failure Mechanism Section [Test] @@ -1555,8 +1667,64 @@ } } + #region Manual Assembly Used + + [Test] + public void GivenAssessmentSectionWithPipingConfigured_WhenAssemblingCombinedPerFailureMechanismSectionAndUseManualTrue_ThenInputSetOnCalculator() + { + // Given + AssessmentSection assessmentSection = CreateAssessmentSection(); + assessmentSection.ReferenceLine = new ReferenceLine(); + PipingFailureMechanism failureMechanism = assessmentSection.Piping; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + PipingFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyProbability = true; + double probability = new Random(39).NextDouble(); + sectionResult.ManualAssemblyProbability = probability; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // When + AssessmentSectionAssemblyFactory.AssembleCombinedPerFailureMechanismSection(assessmentSection, true); + + // Then + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + Assert.AreEqual(probability, failureMechanismSectionAssemblyCalculator.ManualAssemblyProbabilityInput); + } + } + + [Test] + public void GivenAssessmentSectionWithPipingConfigured_WhenAssemblingCombinedPerFailureMechanismSectionAndUseManualFalse_ThenNoInputSetOnCalculator() + { + // Given + AssessmentSection assessmentSection = CreateAssessmentSection(); + assessmentSection.ReferenceLine = new ReferenceLine(); + PipingFailureMechanism failureMechanism = assessmentSection.Piping; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + PipingFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyProbability = true; + double probability = new Random(39).NextDouble(); + sectionResult.ManualAssemblyProbability = probability; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // When + AssessmentSectionAssemblyFactory.AssembleCombinedPerFailureMechanismSection(assessmentSection, false); + + // Then + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + Assert.IsNull(failureMechanismSectionAssemblyCalculator.ManualAssemblyAssemblyOutput); + } + } + #endregion + #endregion + #region Helpers private static CombinedFailureMechanismSectionAssembly CreateCombinedFailureMechanismSectionAssembly(AssessmentSection assessmentSection, int seed)