Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Assembly/AssessmentSectionAssemblyFactoryTest.cs =================================================================== diff -u -r9244e97aa2d6ccaf1ca7eb23f0fe200b85a7fe8a -r1b106234111fd8b4e9e83604d00743264b47eb3a --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Assembly/AssessmentSectionAssemblyFactoryTest.cs (.../AssessmentSectionAssemblyFactoryTest.cs) (revision 9244e97aa2d6ccaf1ca7eb23f0fe200b85a7fe8a) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Assembly/AssessmentSectionAssemblyFactoryTest.cs (.../AssessmentSectionAssemblyFactoryTest.cs) (revision 1b106234111fd8b4e9e83604d00743264b47eb3a) @@ -45,7 +45,6 @@ using Ringtoets.Integration.Data.Assembly; using Ringtoets.Integration.Data.StandAlone; using Ringtoets.Integration.Data.StandAlone.SectionResults; -using Ringtoets.Integration.Data.TestUtil; using Ringtoets.Integration.TestUtil; using Ringtoets.MacroStabilityInwards.Data; using Ringtoets.Piping.Data; @@ -172,29 +171,46 @@ #region Manual Assembly Used + #region Piping + [Test] - [TestCaseSource(typeof(AssessmentSectionAssemblyTestHelper), nameof(AssessmentSectionAssemblyTestHelper.GetConfiguredAssessmentSectionWithGroup1And2FailureMechanisms))] - public void AssembleFailureMechanismsWithProbability_AssessmentSectionWithFailureMechanismWithManualAssemblyAndUseManualTrue_SetsInputOnCalculator(AssessmentSection assessmentSection) + public void GivenAssessmentSectionWithPipingConfigured_WhenAssemblingFailureMechanismsWithProbabilityAndUseManualTrue_ThenInputSetOnCalculator() { - // Setup + // Given + AssessmentSection assessmentSection = CreateAssessmentSection(); + PipingFailureMechanism failureMechanism = assessmentSection.Piping; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + PipingFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssembly = true; + double probability = new Random(39).NextDouble(); + sectionResult.ManualAssemblyProbability = probability; + using (new AssemblyToolCalculatorFactoryConfig()) { - // Call + // When AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithProbability(assessmentSection, true); - // Assert + // Then var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; - FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - Assert.AreSame(failureMechanismSectionAssemblyCalculator.ManualAssemblyAssemblyOutput, failureMechanismAssemblyCalculator.FailureMechanismSectionAssemblies.Single()); + Assert.AreEqual(probability, failureMechanismSectionAssemblyCalculator.ManualAssemblyProbabilityInput); } } [Test] - [TestCaseSource(typeof(AssessmentSectionAssemblyTestHelper), nameof(AssessmentSectionAssemblyTestHelper.GetConfiguredAssessmentSectionWithGroup1And2FailureMechanisms))] - public void AssembleFailureMechanismsWithProbability_AssessmentSectionWithFailureMechanismWithManualAssemblyAndUseManualFalse_SetsInputOnCalculator(AssessmentSection assessmentSection) + public void GivenAssessmentSectionWithPipingConfigured_WhenAssemblingFailureMechanismsWithProbabilityAndUseManualFalse_ThenNoInputSetOnCalculator() { - // Setup + // Given + AssessmentSection assessmentSection = CreateAssessmentSection(); + PipingFailureMechanism failureMechanism = assessmentSection.Piping; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + PipingFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssembly = true; + double probability = new Random(39).NextDouble(); + sectionResult.ManualAssemblyProbability = probability; + using (new AssemblyToolCalculatorFactoryConfig()) { // When @@ -203,15 +219,286 @@ // Then var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; - FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - Assert.AreSame(failureMechanismSectionAssemblyCalculator.CombinedAssemblyOutput, failureMechanismAssemblyCalculator.FailureMechanismSectionAssemblies.Single()); + Assert.IsNull(failureMechanismSectionAssemblyCalculator.ManualAssemblyAssemblyOutput); } } #endregion + #region MacroStabilityInwards + + [Test] + public void GivenAssessmentSectionWithMacroStabilityInwardsConfigured_WhenAssemblingFailureMechanismsWithProbabilityAndUseManualTrue_ThenInputSetOnCalculator() + { + // Given + AssessmentSection assessmentSection = CreateAssessmentSection(); + MacroStabilityInwardsFailureMechanism failureMechanism = assessmentSection.MacroStabilityInwards; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + MacroStabilityInwardsFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssembly = true; + double probability = new Random(39).NextDouble(); + sectionResult.ManualAssemblyProbability = probability; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // When + AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithProbability(assessmentSection, true); + + // Then + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + Assert.AreEqual(probability, failureMechanismSectionAssemblyCalculator.ManualAssemblyProbabilityInput); + } + } + + [Test] + public void GivenAssessmentSectionWithMacroStabilityInwardsConfigured_WhenAssemblingFailureMechanismsWithProbabilityAndUseManualFalse_ThenNoInputSetOnCalculator() + { + // Given + AssessmentSection assessmentSection = CreateAssessmentSection(); + MacroStabilityInwardsFailureMechanism failureMechanism = assessmentSection.MacroStabilityInwards; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + MacroStabilityInwardsFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssembly = true; + double probability = new Random(39).NextDouble(); + sectionResult.ManualAssemblyProbability = probability; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // When + AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithProbability(assessmentSection, false); + + // Then + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + Assert.IsNull(failureMechanismSectionAssemblyCalculator.ManualAssemblyAssemblyOutput); + } + } + #endregion + #region GrassCoverErosionInwards + + [Test] + public void GivenAssessmentSectionWithGrassCoverErosionInwardsConfigured_WhenAssemblingFailureMechanismsWithProbabilityAndUseManualTrue_ThenInputSetOnCalculator() + { + // Given + AssessmentSection assessmentSection = CreateAssessmentSection(); + GrassCoverErosionInwardsFailureMechanism failureMechanism = assessmentSection.GrassCoverErosionInwards; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + GrassCoverErosionInwardsFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssembly = true; + double probability = new Random(39).NextDouble(); + sectionResult.ManualAssemblyProbability = probability; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // When + AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithProbability(assessmentSection, true); + + // Then + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + Assert.AreEqual(probability, failureMechanismSectionAssemblyCalculator.ManualAssemblyProbabilityInput); + } + } + + [Test] + public void GivenAssessmentSectionWithGrassCoverErosionInwardsConfigured_WhenAssemblingFailureMechanismsWithProbabilityAndUseManualFalse_ThenNoInputSetOnCalculator() + { + // Given + AssessmentSection assessmentSection = CreateAssessmentSection(); + GrassCoverErosionInwardsFailureMechanism failureMechanism = assessmentSection.GrassCoverErosionInwards; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + GrassCoverErosionInwardsFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssembly = true; + double probability = new Random(39).NextDouble(); + sectionResult.ManualAssemblyProbability = probability; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // When + AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithProbability(assessmentSection, false); + + // Then + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + Assert.IsNull(failureMechanismSectionAssemblyCalculator.ManualAssemblyAssemblyOutput); + } + } + + #endregion + + #region ClosingStructures + + [Test] + public void GivenAssessmentSectionWithClosingStructuresConfigured_WhenAssemblingFailureMechanismsWithProbabilityAndUseManualTrue_ThenInputSetOnCalculator() + { + // Given + AssessmentSection assessmentSection = CreateAssessmentSection(); + ClosingStructuresFailureMechanism failureMechanism = assessmentSection.ClosingStructures; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + ClosingStructuresFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssembly = true; + double probability = new Random(39).NextDouble(); + sectionResult.ManualAssemblyProbability = probability; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // When + AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithProbability(assessmentSection, true); + + // Then + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + Assert.AreEqual(probability, failureMechanismSectionAssemblyCalculator.ManualAssemblyProbabilityInput); + } + } + + [Test] + public void GivenAssessmentSectionWithClosingStructuresConfigured_WhenAssemblingFailureMechanismsWithProbabilityAndUseManualFalse_ThenNoInputSetOnCalculator() + { + // Given + AssessmentSection assessmentSection = CreateAssessmentSection(); + ClosingStructuresFailureMechanism failureMechanism = assessmentSection.ClosingStructures; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + ClosingStructuresFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssembly = true; + double probability = new Random(39).NextDouble(); + sectionResult.ManualAssemblyProbability = probability; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // When + AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithProbability(assessmentSection, false); + + // Then + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + Assert.IsNull(failureMechanismSectionAssemblyCalculator.ManualAssemblyAssemblyOutput); + } + } + + #endregion + + #region HeightStructures + + [Test] + public void GivenAssessmentSectionWithHeightStructuresConfigured_WhenAssemblingFailureMechanismsWithProbabilityAndUseManualTrue_ThenInputSetOnCalculator() + { + // Given + AssessmentSection assessmentSection = CreateAssessmentSection(); + HeightStructuresFailureMechanism failureMechanism = assessmentSection.HeightStructures; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + HeightStructuresFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssembly = true; + double probability = new Random(39).NextDouble(); + sectionResult.ManualAssemblyProbability = probability; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // When + AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithProbability(assessmentSection, true); + + // Then + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + Assert.AreEqual(probability, failureMechanismSectionAssemblyCalculator.ManualAssemblyProbabilityInput); + } + } + + [Test] + public void GivenAssessmentSectionWithHeightStructuresConfigured_WhenAssemblingFailureMechanismsWithProbabilityAndUseManualFalse_ThenNoInputSetOnCalculator() + { + // Given + AssessmentSection assessmentSection = CreateAssessmentSection(); + HeightStructuresFailureMechanism failureMechanism = assessmentSection.HeightStructures; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + HeightStructuresFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssembly = true; + double probability = new Random(39).NextDouble(); + sectionResult.ManualAssemblyProbability = probability; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // When + AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithProbability(assessmentSection, false); + + // Then + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + Assert.IsNull(failureMechanismSectionAssemblyCalculator.ManualAssemblyAssemblyOutput); + } + } + + #endregion + + #region StabilityPointStructures + + [Test] + public void GivenAssessmentSectionWithStabilityPointStructuresConfigured_WhenAssemblingFailureMechanismsWithProbabilityAndUseManualTrue_ThenInputSetOnCalculator() + { + // Given + AssessmentSection assessmentSection = CreateAssessmentSection(); + StabilityPointStructuresFailureMechanism failureMechanism = assessmentSection.StabilityPointStructures; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + StabilityPointStructuresFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssembly = true; + double probability = new Random(39).NextDouble(); + sectionResult.ManualAssemblyProbability = probability; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // When + AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithProbability(assessmentSection, true); + + // Then + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + Assert.AreEqual(probability, failureMechanismSectionAssemblyCalculator.ManualAssemblyProbabilityInput); + } + } + + [Test] + public void GivenAssessmentSectionWithStabilityPointStructuresConfigured_WhenAssemblingFailureMechanismsWithProbabilityAndUseManualFalse_ThenNoInputSetOnCalculator() + { + // Given + AssessmentSection assessmentSection = CreateAssessmentSection(); + StabilityPointStructuresFailureMechanism failureMechanism = assessmentSection.StabilityPointStructures; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + + StabilityPointStructuresFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssembly = true; + double probability = new Random(39).NextDouble(); + sectionResult.ManualAssemblyProbability = probability; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // When + AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithProbability(assessmentSection, false); + + // Then + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + Assert.IsNull(failureMechanismSectionAssemblyCalculator.ManualAssemblyAssemblyOutput); + } + } + + #endregion + + #endregion + + #endregion + #region Assemble Failure Mechanisms Without Probability [Test]