Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultTotalView.cs =================================================================== diff -u -r602252658dcfe6cacca8ea7257323e560b9d1418 -r253cfb5af9f670f70a40399030923f8a541bc2b0 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultTotalView.cs (.../AssemblyResultTotalView.cs) (revision 602252658dcfe6cacca8ea7257323e560b9d1418) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultTotalView.cs (.../AssemblyResultTotalView.cs) (revision 253cfb5af9f670f70a40399030923f8a541bc2b0) @@ -216,7 +216,7 @@ try { failureMechanismsWithoutProbabilityAssemblyControl.SetAssemblyResult( - AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithoutProbability(AssessmentSection)); + AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithoutProbability(AssessmentSection, true)); } catch (AssemblyException e) { @@ -232,7 +232,7 @@ try { failureMechanismsWithProbabilityAssemblyControl.SetAssemblyResult( - AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithProbability(AssessmentSection)); + AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithProbability(AssessmentSection, true)); } catch (AssemblyException e) { @@ -248,7 +248,7 @@ try { totalAssemblyCategoryGroupControl.SetAssemblyResult( - AssessmentSectionAssemblyFactory.AssembleAssessmentSection(AssessmentSection)); + AssessmentSectionAssemblyFactory.AssembleAssessmentSection(AssessmentSection, true)); } catch (AssemblyException e) { @@ -270,31 +270,35 @@ ClosingStructuresFailureMechanism closingStructures = AssessmentSection.ClosingStructures; return new FailureMechanismAssemblyResultRow(closingStructures, () => ClosingStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism(closingStructures, - AssessmentSection)); + AssessmentSection, + true)); } private FailureMechanismAssemblyResultRow CreateHeightStructuresFailureMechanismAssemblyResultRow() { HeightStructuresFailureMechanism heightStructures = AssessmentSection.HeightStructures; return new FailureMechanismAssemblyResultRow(heightStructures, () => HeightStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism(heightStructures, - AssessmentSection)); + AssessmentSection, + true)); } private FailureMechanismAssemblyResultRow CreateStabilityPointsStructuresFailureMechanismAssemblyResultRow() { StabilityPointStructuresFailureMechanism stabilityPointStructures = AssessmentSection.StabilityPointStructures; return new FailureMechanismAssemblyResultRow(stabilityPointStructures, () => StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism(stabilityPointStructures, - AssessmentSection)); + AssessmentSection, + true)); } private FailureMechanismAssemblyResultRow CreateGrassCoverErosionInwardsFailureMechanismAssemblyResultRow() { GrassCoverErosionInwardsFailureMechanism grassCoverErosionInwards = AssessmentSection.GrassCoverErosionInwards; return new FailureMechanismAssemblyResultRow(grassCoverErosionInwards, () => GrassCoverErosionInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(grassCoverErosionInwards, - AssessmentSection)); + AssessmentSection, + true)); } #endregion @@ -306,15 +310,17 @@ PipingFailureMechanism piping = AssessmentSection.Piping; return new FailureMechanismAssemblyResultRow(piping, () => PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism(piping, - AssessmentSection)); + AssessmentSection, + true)); } private FailureMechanismAssemblyResultRowBase CreateMacroStabilityInwardsFailureMechanismAssemblyResultRow() { MacroStabilityInwardsFailureMechanism macroStabilityInwards = AssessmentSection.MacroStabilityInwards; return new FailureMechanismAssemblyResultRow(macroStabilityInwards, () => MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(macroStabilityInwards, - AssessmentSection)); + AssessmentSection, + true)); } #endregion @@ -325,28 +331,28 @@ { StabilityStoneCoverFailureMechanism stabilityStoneCover = AssessmentSection.StabilityStoneCover; return new FailureMechanismAssemblyCategoryGroupResultRow(stabilityStoneCover, - () => StabilityStoneCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism(stabilityStoneCover)); + () => StabilityStoneCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism(stabilityStoneCover, true)); } private FailureMechanismAssemblyCategoryGroupResultRow CreateWaveImpactFailureMechanismAssemblyResultRow() { WaveImpactAsphaltCoverFailureMechanism waveImpactAsphaltCover = AssessmentSection.WaveImpactAsphaltCover; return new FailureMechanismAssemblyCategoryGroupResultRow(waveImpactAsphaltCover, - () => WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism(waveImpactAsphaltCover)); + () => WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism(waveImpactAsphaltCover, true)); } private FailureMechanismAssemblyCategoryGroupResultRow CreateGrassCoverErosionOutwardsFailureMechanismAssemblyResultRow() { GrassCoverErosionOutwardsFailureMechanism grassCoverErosionOutwards = AssessmentSection.GrassCoverErosionOutwards; return new FailureMechanismAssemblyCategoryGroupResultRow(grassCoverErosionOutwards, - () => GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(grassCoverErosionOutwards)); + () => GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(grassCoverErosionOutwards, true)); } private FailureMechanismAssemblyCategoryGroupResultRow CreateDuneErosionFailureMechanismAssemblyResultRow() { DuneErosionFailureMechanism duneErosion = AssessmentSection.DuneErosion; return new FailureMechanismAssemblyCategoryGroupResultRow(duneErosion, - () => DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(duneErosion)); + () => DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(duneErosion, true)); } #endregion @@ -358,56 +364,57 @@ MacroStabilityOutwardsFailureMechanism macroStabilityOutwards = AssessmentSection.MacroStabilityOutwards; return new FailureMechanismAssemblyCategoryGroupResultRow(macroStabilityOutwards, () => MacroStabilityOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(macroStabilityOutwards, - AssessmentSection)); + AssessmentSection, + true)); } private FailureMechanismAssemblyCategoryGroupResultRow CreateMicrostabilityFailureMechanismAssemblyResultRow() { MicrostabilityFailureMechanism microstability = AssessmentSection.Microstability; return new FailureMechanismAssemblyCategoryGroupResultRow(microstability, - () => MicrostabilityFailureMechanismAssemblyFactory.AssembleFailureMechanism(microstability)); + () => MicrostabilityFailureMechanismAssemblyFactory.AssembleFailureMechanism(microstability, true)); } private FailureMechanismAssemblyCategoryGroupResultRow CreateWaterPressureAsphaltCoverFailureMechanismAssemblyResultRow() { WaterPressureAsphaltCoverFailureMechanism waterPressureAsphaltCover = AssessmentSection.WaterPressureAsphaltCover; return new FailureMechanismAssemblyCategoryGroupResultRow(waterPressureAsphaltCover, - () => WaterPressureAsphaltCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism(waterPressureAsphaltCover)); + () => WaterPressureAsphaltCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism(waterPressureAsphaltCover, true)); } private FailureMechanismAssemblyCategoryGroupResultRow CreateGrassCoverSlipOffOutwardsFailureMechanismAssemblyResultRow() { GrassCoverSlipOffOutwardsFailureMechanism grassCoverSlipOffOutwards = AssessmentSection.GrassCoverSlipOffOutwards; return new FailureMechanismAssemblyCategoryGroupResultRow(grassCoverSlipOffOutwards, - () => GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(grassCoverSlipOffOutwards)); + () => GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(grassCoverSlipOffOutwards, true)); } private FailureMechanismAssemblyCategoryGroupResultRow CreateGrassCoverSlipOffInwardsFailureMechanismAssemblyResultRow() { GrassCoverSlipOffInwardsFailureMechanism grassCoverSlipOffInwards = AssessmentSection.GrassCoverSlipOffInwards; return new FailureMechanismAssemblyCategoryGroupResultRow(grassCoverSlipOffInwards, - () => GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(grassCoverSlipOffInwards)); + () => GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(grassCoverSlipOffInwards, true)); } private FailureMechanismAssemblyCategoryGroupResultRow CreatePipingStructureFailureMechanismAssemblyResultRow() { PipingStructureFailureMechanism pipingStructure = AssessmentSection.PipingStructure; return new FailureMechanismAssemblyCategoryGroupResultRow(pipingStructure, - () => PipingStructureFailureMechanismAssemblyFactory.AssembleFailureMechanism(pipingStructure)); + () => PipingStructureFailureMechanismAssemblyFactory.AssembleFailureMechanism(pipingStructure, true)); } private FailureMechanismAssemblyCategoryGroupResultRow CreateStrengthStabilityLengthWiseConstructionFailureMechanismAssemblyResultRow() { StrengthStabilityLengthwiseConstructionFailureMechanism strengthStabilityLengthwiseConstruction = AssessmentSection.StrengthStabilityLengthwiseConstruction; return new FailureMechanismAssemblyCategoryGroupResultRow(strengthStabilityLengthwiseConstruction, - () => StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactory.AssembleFailureMechanism(strengthStabilityLengthwiseConstruction)); + () => StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactory.AssembleFailureMechanism(strengthStabilityLengthwiseConstruction, true)); } private FailureMechanismAssemblyCategoryGroupResultRow CreateTechnicalInnovationFailureMechanismAssemblyResultRow() { TechnicalInnovationFailureMechanism technicalInnovation = AssessmentSection.TechnicalInnovation; return new FailureMechanismAssemblyCategoryGroupResultRow(technicalInnovation, - () => TechnicalInnovationFailureMechanismAssemblyFactory.AssembleFailureMechanism(technicalInnovation)); + () => TechnicalInnovationFailureMechanismAssemblyFactory.AssembleFailureMechanism(technicalInnovation, true)); } #endregion Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/AssemblyResultTotalViewTest.cs =================================================================== diff -u -rbae13ff476bcb31e6406a81d7176c546a0edbb03 -r253cfb5af9f670f70a40399030923f8a541bc2b0 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/AssemblyResultTotalViewTest.cs (.../AssemblyResultTotalViewTest.cs) (revision bae13ff476bcb31e6406a81d7176c546a0edbb03) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/AssemblyResultTotalViewTest.cs (.../AssemblyResultTotalViewTest.cs) (revision 253cfb5af9f670f70a40399030923f8a541bc2b0) @@ -28,6 +28,7 @@ using Core.Common.Controls.DataGrid; using Core.Common.Controls.Views; using Core.Common.TestUtil; +using Core.Common.Util.Extensions; using Core.Common.Util.Reflection; using NUnit.Extensions.Forms; using NUnit.Framework; @@ -36,17 +37,21 @@ using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators.Assembly; using Ringtoets.ClosingStructures.Data; +using Ringtoets.Common.Data.AssemblyTool; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Data.TestUtil; using Ringtoets.Common.Forms.Controls; using Ringtoets.Common.Forms.Helpers; +using Ringtoets.Common.Primitives; using Ringtoets.DuneErosion.Data; using Ringtoets.GrassCoverErosionInwards.Data; using Ringtoets.GrassCoverErosionOutwards.Data; using Ringtoets.HeightStructures.Data; using Ringtoets.HeightStructures.Data.TestUtil; using Ringtoets.Integration.Data; using Ringtoets.Integration.Data.StandAlone; +using Ringtoets.Integration.Data.StandAlone.SectionResults; using Ringtoets.Integration.Forms.Controls; using Ringtoets.Integration.Forms.Views; using Ringtoets.MacroStabilityInwards.Data; @@ -67,7 +72,7 @@ private const int failureMechanismCodeColumnIndex = 1; private const int failureMechanismGroupColumnIndex = 2; private const int failureMechanismAssemblyCategoryColumnIndex = 3; - private const int failureMechanisProbabilityColumnIndex = 4; + private const int failureMechanismProbabilityColumnIndex = 4; private const string totalControlName = "totalAssemblyCategoryGroupControl"; private const string failureMechanismsWithProbabilityControlName = "failureMechanismsWithProbabilityAssemblyControl"; private const string failureMechanismsWithoutProbabilityControlName = "failureMechanismsWithoutProbabilityAssemblyControl"; @@ -179,13 +184,13 @@ Assert.IsInstanceOf(dataGridViewColumns[failureMechanismCodeColumnIndex]); Assert.IsInstanceOf(dataGridViewColumns[failureMechanismGroupColumnIndex]); Assert.IsInstanceOf(dataGridViewColumns[failureMechanismAssemblyCategoryColumnIndex]); - Assert.IsInstanceOf(dataGridViewColumns[failureMechanisProbabilityColumnIndex]); + Assert.IsInstanceOf(dataGridViewColumns[failureMechanismProbabilityColumnIndex]); Assert.AreEqual("Toetsspoor", dataGridViewColumns[failureMechanismNameColumnIndex].HeaderText); Assert.AreEqual("Label", dataGridViewColumns[failureMechanismCodeColumnIndex].HeaderText); Assert.AreEqual("Groep", dataGridViewColumns[failureMechanismGroupColumnIndex].HeaderText); Assert.AreEqual("Categorie", dataGridViewColumns[failureMechanismAssemblyCategoryColumnIndex].HeaderText); - Assert.AreEqual("Benaderde faalkans [1/jaar]", dataGridViewColumns[failureMechanisProbabilityColumnIndex].HeaderText); + Assert.AreEqual("Benaderde faalkans [1/jaar]", dataGridViewColumns[failureMechanismProbabilityColumnIndex].HeaderText); Assert.IsTrue(dataGridViewColumns[failureMechanismNameColumnIndex].ReadOnly); Assert.IsTrue(dataGridViewColumns[failureMechanismCodeColumnIndex].ReadOnly); @@ -200,8 +205,8 @@ // Given using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; using (AssemblyResultTotalView view = ShowAssemblyResultTotalView()) { @@ -245,8 +250,8 @@ AssertAssemblyResultControl(failureMechanismsWithoutProbabilityControlName, "IIIt"); // When - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - AssessmentSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedAssessmentSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + AssessmentSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedAssessmentSectionAssemblyCalculator; calculator.AssembleAssessmentSectionCategoryGroupOutput = AssessmentSectionAssemblyCategoryGroup.A; calculator.AssembleFailureMechanismsAssemblyOutput = new FailureMechanismAssembly(0.5, FailureMechanismAssemblyCategoryGroup.IIt); calculator.AssembleFailureMechanismsAssemblyCategoryGroupOutput = FailureMechanismAssemblyCategoryGroup.IVt; @@ -276,8 +281,8 @@ AssertAssemblyResultControl(failureMechanismsWithoutProbabilityControlName, "IIIt"); // When - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - AssessmentSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedAssessmentSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + AssessmentSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedAssessmentSectionAssemblyCalculator; calculator.ThrowExceptionOnCalculate = true; buttonTester.Click(); @@ -295,8 +300,8 @@ // Given using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - AssessmentSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedAssessmentSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + AssessmentSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedAssessmentSectionAssemblyCalculator; calculator.ThrowExceptionOnCalculate = true; using (ShowAssemblyResultTotalView()) @@ -336,8 +341,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) using (AssemblyResultTotalView view = ShowAssemblyResultTotalView()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; ButtonTester buttonTester = GetRefreshAssemblyResultButtonTester(); buttonTester.Properties.Enabled = true; @@ -538,6 +543,506 @@ } } + #region Use Manual Assembly + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenPipingHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + var assessmentSection = new AssessmentSection(random.NextEnumValue()); + PipingFailureMechanism failureMechanism = assessmentSection.Piping; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + PipingFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyProbability = true; + sectionResult.ManualAssemblyProbability = random.NextDouble(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(sectionResult.ManualAssemblyProbability, calculator.ManualAssemblyProbabilityInput); + } + } + } + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenMacroStabilityInwardsHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + var assessmentSection = new AssessmentSection(random.NextEnumValue()); + MacroStabilityInwardsFailureMechanism failureMechanism = assessmentSection.MacroStabilityInwards; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + MacroStabilityInwardsFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyProbability = true; + sectionResult.ManualAssemblyProbability = random.NextDouble(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(sectionResult.ManualAssemblyProbability, calculator.ManualAssemblyProbabilityInput); + } + } + } + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenGrassCoverErosionInwardsHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + var assessmentSection = new AssessmentSection(random.NextEnumValue()); + GrassCoverErosionInwardsFailureMechanism failureMechanism = assessmentSection.GrassCoverErosionInwards; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + GrassCoverErosionInwardsFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyProbability = true; + sectionResult.ManualAssemblyProbability = random.NextDouble(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(sectionResult.ManualAssemblyProbability, calculator.ManualAssemblyProbabilityInput); + } + } + } + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenClosingStructuresHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + var assessmentSection = new AssessmentSection(random.NextEnumValue()); + ClosingStructuresFailureMechanism failureMechanism = assessmentSection.ClosingStructures; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + ClosingStructuresFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyProbability = true; + sectionResult.ManualAssemblyProbability = random.NextDouble(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(sectionResult.ManualAssemblyProbability, calculator.ManualAssemblyProbabilityInput); + } + } + } + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenHeightStructuresHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + var assessmentSection = new AssessmentSection(random.NextEnumValue()); + HeightStructuresFailureMechanism failureMechanism = assessmentSection.HeightStructures; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + HeightStructuresFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyProbability = true; + sectionResult.ManualAssemblyProbability = random.NextDouble(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(sectionResult.ManualAssemblyProbability, calculator.ManualAssemblyProbabilityInput); + } + } + } + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenStabilityPointStructuresHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + var assessmentSection = new AssessmentSection(random.NextEnumValue()); + StabilityPointStructuresFailureMechanism failureMechanism = assessmentSection.StabilityPointStructures; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + StabilityPointStructuresFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyProbability = true; + sectionResult.ManualAssemblyProbability = random.NextDouble(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(sectionResult.ManualAssemblyProbability, calculator.ManualAssemblyProbabilityInput); + } + } + } + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenGrassCoverErosionOutwardsHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + AssessmentSection assessmentSection = CreateIrrelevantAssessmentSection(); + GrassCoverErosionOutwardsFailureMechanism failureMechanism = assessmentSection.GrassCoverErosionOutwards; + failureMechanism.IsRelevant = true; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + GrassCoverErosionOutwardsFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyCategoryGroup = true; + sectionResult.ManualAssemblyCategoryGroup = random.NextEnumValue(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(sectionResult.ManualAssemblyCategoryGroup, calculator.FailureMechanismSectionCategories.Single()); + } + } + } + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenDuneErosionHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + AssessmentSection assessmentSection = CreateIrrelevantAssessmentSection(); + DuneErosionFailureMechanism failureMechanism = assessmentSection.DuneErosion; + failureMechanism.IsRelevant = true; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + DuneErosionFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyCategoryGroup = true; + sectionResult.ManualAssemblyCategoryGroup = random.NextEnumValue(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(sectionResult.ManualAssemblyCategoryGroup, calculator.FailureMechanismSectionCategories.Single()); + } + } + } + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenStabilityStoneCoverHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + AssessmentSection assessmentSection = CreateIrrelevantAssessmentSection(); + StabilityStoneCoverFailureMechanism failureMechanism = assessmentSection.StabilityStoneCover; + failureMechanism.IsRelevant = true; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + StabilityStoneCoverFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyCategoryGroup = true; + sectionResult.ManualAssemblyCategoryGroup = random.NextEnumValue(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(sectionResult.ManualAssemblyCategoryGroup, calculator.FailureMechanismSectionCategories.Single()); + } + } + } + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenWaveImpactAsphaltCoverHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + AssessmentSection assessmentSection = CreateIrrelevantAssessmentSection(); + WaveImpactAsphaltCoverFailureMechanism failureMechanism = assessmentSection.WaveImpactAsphaltCover; + failureMechanism.IsRelevant = true; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + WaveImpactAsphaltCoverFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyCategoryGroup = true; + sectionResult.ManualAssemblyCategoryGroup = random.NextEnumValue(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(sectionResult.ManualAssemblyCategoryGroup, calculator.FailureMechanismSectionCategories.Single()); + } + } + } + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenGrassCoverSlipOffInwardsHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + AssessmentSection assessmentSection = CreateIrrelevantAssessmentSection(); + GrassCoverSlipOffInwardsFailureMechanism failureMechanism = assessmentSection.GrassCoverSlipOffInwards; + failureMechanism.IsRelevant = true; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + GrassCoverSlipOffInwardsFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyCategoryGroup = true; + sectionResult.ManualAssemblyCategoryGroup = random.NextEnumValue(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(ManualFailureMechanismSectionAssemblyCategoryGroupConverter.Convert(sectionResult.ManualAssemblyCategoryGroup), + calculator.FailureMechanismSectionCategories.Single()); + } + } + } + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenGrassCoverSlipOffOutwardsHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + AssessmentSection assessmentSection = CreateIrrelevantAssessmentSection(); + GrassCoverSlipOffOutwardsFailureMechanism failureMechanism = assessmentSection.GrassCoverSlipOffOutwards; + failureMechanism.IsRelevant = true; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + GrassCoverSlipOffOutwardsFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyCategoryGroup = true; + sectionResult.ManualAssemblyCategoryGroup = random.NextEnumValue(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(ManualFailureMechanismSectionAssemblyCategoryGroupConverter.Convert(sectionResult.ManualAssemblyCategoryGroup), + calculator.FailureMechanismSectionCategories.Single()); + } + } + } + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenMacroStabilityOutwardsHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + AssessmentSection assessmentSection = CreateIrrelevantAssessmentSection(); + MacroStabilityOutwardsFailureMechanism failureMechanism = assessmentSection.MacroStabilityOutwards; + failureMechanism.IsRelevant = true; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + MacroStabilityOutwardsFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyCategoryGroup = true; + sectionResult.ManualAssemblyCategoryGroup = random.NextEnumValue(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(ManualFailureMechanismSectionAssemblyCategoryGroupConverter.Convert(sectionResult.ManualAssemblyCategoryGroup), + calculator.FailureMechanismSectionCategories.Single()); + } + } + } + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenMicrostabilityHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + AssessmentSection assessmentSection = CreateIrrelevantAssessmentSection(); + MicrostabilityFailureMechanism failureMechanism = assessmentSection.Microstability; + failureMechanism.IsRelevant = true; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + MicrostabilityFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyCategoryGroup = true; + sectionResult.ManualAssemblyCategoryGroup = random.NextEnumValue(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(ManualFailureMechanismSectionAssemblyCategoryGroupConverter.Convert(sectionResult.ManualAssemblyCategoryGroup), + calculator.FailureMechanismSectionCategories.Single()); + } + } + } + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenPipingStructureHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + AssessmentSection assessmentSection = CreateIrrelevantAssessmentSection(); + PipingStructureFailureMechanism failureMechanism = assessmentSection.PipingStructure; + failureMechanism.IsRelevant = true; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + PipingStructureFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyCategoryGroup = true; + sectionResult.ManualAssemblyCategoryGroup = random.NextEnumValue(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(ManualFailureMechanismSectionAssemblyCategoryGroupConverter.Convert(sectionResult.ManualAssemblyCategoryGroup), + calculator.FailureMechanismSectionCategories.Single()); + } + } + } + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenStrengthStabilityLengthwiseConstructionHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + AssessmentSection assessmentSection = CreateIrrelevantAssessmentSection(); + StrengthStabilityLengthwiseConstructionFailureMechanism failureMechanism = assessmentSection.StrengthStabilityLengthwiseConstruction; + failureMechanism.IsRelevant = true; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + StrengthStabilityLengthwiseConstructionFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyCategoryGroup = true; + sectionResult.ManualAssemblyCategoryGroup = random.NextEnumValue(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(ManualFailureMechanismSectionAssemblyCategoryGroupConverter.Convert(sectionResult.ManualAssemblyCategoryGroup), + calculator.FailureMechanismSectionCategories.Single()); + } + } + } + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenTechnicalInnovationHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + AssessmentSection assessmentSection = CreateIrrelevantAssessmentSection(); + TechnicalInnovationFailureMechanism failureMechanism = assessmentSection.TechnicalInnovation; + failureMechanism.IsRelevant = true; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + TechnicalInnovationFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyCategoryGroup = true; + sectionResult.ManualAssemblyCategoryGroup = random.NextEnumValue(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(ManualFailureMechanismSectionAssemblyCategoryGroupConverter.Convert(sectionResult.ManualAssemblyCategoryGroup), + calculator.FailureMechanismSectionCategories.Single()); + } + } + } + + [Test] + public void GivenFormWithAssemblyResultTotalView_WhenWaterPressureAsphaltCoverHasManualAssembly_ThenManualAssemblyUsed() + { + // Given + var random = new Random(39); + AssessmentSection assessmentSection = CreateIrrelevantAssessmentSection(); + WaterPressureAsphaltCoverFailureMechanism failureMechanism = assessmentSection.WaterPressureAsphaltCover; + failureMechanism.IsRelevant = true; + FailureMechanismTestHelper.AddSections(failureMechanism, 1); + WaterPressureAsphaltCoverFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyCategoryGroup = true; + sectionResult.ManualAssemblyCategoryGroup = random.NextEnumValue(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; + + // When + using (ShowAssemblyResultTotalView(assessmentSection)) + { + // Then + Assert.AreEqual(ManualFailureMechanismSectionAssemblyCategoryGroupConverter.Convert(sectionResult.ManualAssemblyCategoryGroup), + calculator.FailureMechanismSectionCategories.Single()); + } + } + } + + private static AssessmentSection CreateIrrelevantAssessmentSection() + { + var random = new Random(39); + var assessmentSection = new AssessmentSection(random.NextEnumValue()); + assessmentSection.GetFailureMechanisms().ForEachElementDo(fm => fm.IsRelevant = false); + return assessmentSection; + } + + #endregion + #region View test helpers private AssemblyResultTotalView ShowAssemblyResultTotalView() @@ -678,7 +1183,7 @@ Assert.AreEqual(assemblyOutput.Group, cells[failureMechanismAssemblyCategoryColumnIndex].Value); Assert.AreEqual(ProbabilityFormattingHelper.Format(assemblyOutput.Probability), - cells[failureMechanisProbabilityColumnIndex].FormattedValue); + cells[failureMechanismProbabilityColumnIndex].FormattedValue); } private static void AssertAssemblyCells(IFailureMechanism failureMechanism, @@ -688,7 +1193,7 @@ AssertAssemblyCells(failureMechanism, cells); Assert.AreEqual(categoryGroup, cells[failureMechanismAssemblyCategoryColumnIndex].Value); - Assert.AreEqual("-", cells[failureMechanisProbabilityColumnIndex].FormattedValue); + Assert.AreEqual("-", cells[failureMechanismProbabilityColumnIndex].FormattedValue); } #endregion