Index: Riskeer/HeightStructures/src/Riskeer.HeightStructures.Data/HeightStructuresFailureMechanismAssemblyFactory.cs =================================================================== diff -u -re7f074df2c06a1c0b7d628f75dd87f0552d11e08 -reeb9df26ec9ddb16249a6b4488df1d79fffdaf8e --- Riskeer/HeightStructures/src/Riskeer.HeightStructures.Data/HeightStructuresFailureMechanismAssemblyFactory.cs (.../HeightStructuresFailureMechanismAssemblyFactory.cs) (revision e7f074df2c06a1c0b7d628f75dd87f0552d11e08) +++ Riskeer/HeightStructures/src/Riskeer.HeightStructures.Data/HeightStructuresFailureMechanismAssemblyFactory.cs (.../HeightStructuresFailureMechanismAssemblyFactory.cs) (revision eeb9df26ec9ddb16249a6b4488df1d79fffdaf8e) @@ -29,6 +29,7 @@ using Riskeer.Common.Data.AssemblyTool; using Riskeer.Common.Data.AssessmentSection; using Riskeer.Common.Data.Exceptions; +using Riskeer.Common.Data.Structures; using Riskeer.Common.Primitives; using RiskeerCommonDataResources = Riskeer.Common.Data.Properties.Resources; @@ -76,6 +77,7 @@ /// /// The failure mechanism section result to /// assemble the detailed assembly for. + /// The calculation scenarios belonging to this section. /// The failure mechanism this section belongs to. /// The this section belongs to. /// A . @@ -84,6 +86,7 @@ /// could not be created. public static FailureMechanismSectionAssembly AssembleDetailedAssessment( HeightStructuresFailureMechanismSectionResult failureMechanismSectionResult, + IEnumerable> calculationScenarios, HeightStructuresFailureMechanism failureMechanism, IAssessmentSection assessmentSection) { @@ -92,6 +95,11 @@ throw new ArgumentNullException(nameof(failureMechanismSectionResult)); } + if (calculationScenarios == null) + { + throw new ArgumentNullException(nameof(calculationScenarios)); + } + if (failureMechanism == null) { throw new ArgumentNullException(nameof(failureMechanism)); @@ -172,6 +180,7 @@ /// /// The failure mechanism section result to /// combine the assemblies for. + /// The calculation scenarios belonging to this section. /// The failure mechanism this section belongs to. /// The this section belongs to. /// A . @@ -180,6 +189,7 @@ /// could not be created. public static FailureMechanismSectionAssembly AssembleCombinedAssessment( HeightStructuresFailureMechanismSectionResult failureMechanismSectionResult, + IEnumerable> calculationScenarios, HeightStructuresFailureMechanism failureMechanism, IAssessmentSection assessmentSection) { @@ -188,6 +198,11 @@ throw new ArgumentNullException(nameof(failureMechanismSectionResult)); } + if (calculationScenarios == null) + { + throw new ArgumentNullException(nameof(calculationScenarios)); + } + if (failureMechanism == null) { throw new ArgumentNullException(nameof(failureMechanism)); @@ -214,7 +229,7 @@ return calculator.AssembleCombined( simpleAssembly, - AssembleDetailedAssessment(failureMechanismSectionResult, failureMechanism, assessmentSection), + AssembleDetailedAssessment(failureMechanismSectionResult, calculationScenarios, failureMechanism, assessmentSection), AssembleTailorMadeAssessment(failureMechanismSectionResult, failureMechanism, assessmentSection)); } catch (FailureMechanismSectionAssemblyCalculatorException e) @@ -334,6 +349,7 @@ else { sectionAssembly = AssembleCombinedAssessment(failureMechanismSectionResult, + failureMechanism.Calculations.Cast>(), failureMechanism, assessmentSection); } Index: Riskeer/HeightStructures/src/Riskeer.HeightStructures.Forms/Factories/HeightStructuresAssemblyMapDataFeaturesFactory.cs =================================================================== diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -reeb9df26ec9ddb16249a6b4488df1d79fffdaf8e --- Riskeer/HeightStructures/src/Riskeer.HeightStructures.Forms/Factories/HeightStructuresAssemblyMapDataFeaturesFactory.cs (.../HeightStructuresAssemblyMapDataFeaturesFactory.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea) +++ Riskeer/HeightStructures/src/Riskeer.HeightStructures.Forms/Factories/HeightStructuresAssemblyMapDataFeaturesFactory.cs (.../HeightStructuresAssemblyMapDataFeaturesFactory.cs) (revision eeb9df26ec9ddb16249a6b4488df1d79fffdaf8e) @@ -21,8 +21,10 @@ using System; using System.Collections.Generic; +using System.Linq; using Core.Components.Gis.Features; using Riskeer.Common.Data.AssessmentSection; +using Riskeer.Common.Data.Structures; using Riskeer.Common.Forms.Factories; using Riskeer.HeightStructures.Data; @@ -78,6 +80,7 @@ failureMechanism, sectionResult => HeightStructuresFailureMechanismAssemblyFactory.AssembleDetailedAssessment( sectionResult, + failureMechanism.Calculations.Cast>(), failureMechanism, assessmentSection)); } @@ -133,6 +136,7 @@ failureMechanism, sectionResult => HeightStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( sectionResult, + failureMechanism.Calculations.Cast>(), failureMechanism, assessmentSection)); } Index: Riskeer/HeightStructures/src/Riskeer.HeightStructures.Forms/Views/HeightStructuresFailureMechanismSectionResultRow.cs =================================================================== diff -u -r52690294f687517a9367ec30bc6fcd44bb18d9fe -reeb9df26ec9ddb16249a6b4488df1d79fffdaf8e --- Riskeer/HeightStructures/src/Riskeer.HeightStructures.Forms/Views/HeightStructuresFailureMechanismSectionResultRow.cs (.../HeightStructuresFailureMechanismSectionResultRow.cs) (revision 52690294f687517a9367ec30bc6fcd44bb18d9fe) +++ Riskeer/HeightStructures/src/Riskeer.HeightStructures.Forms/Views/HeightStructuresFailureMechanismSectionResultRow.cs (.../HeightStructuresFailureMechanismSectionResultRow.cs) (revision eeb9df26ec9ddb16249a6b4488df1d79fffdaf8e) @@ -22,6 +22,7 @@ using System; using System.Collections.Generic; using System.ComponentModel; +using System.Linq; using Core.Common.Controls.DataGrid; using Riskeer.AssemblyTool.Data; using Riskeer.Common.Data.AssessmentSection; @@ -324,6 +325,7 @@ { detailedAssemblyCategoryGroup = HeightStructuresFailureMechanismAssemblyFactory.AssembleDetailedAssessment( SectionResult, + failureMechanism.Calculations.Cast>(), failureMechanism, assessmentSection).Group; } @@ -357,6 +359,7 @@ FailureMechanismSectionAssembly combinedAssembly = HeightStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( SectionResult, + failureMechanism.Calculations.Cast>(), failureMechanism, assessmentSection); Index: Riskeer/HeightStructures/test/Riskeer.HeightStructures.Data.Test/HeightStructuresFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -re7f074df2c06a1c0b7d628f75dd87f0552d11e08 -reeb9df26ec9ddb16249a6b4488df1d79fffdaf8e --- Riskeer/HeightStructures/test/Riskeer.HeightStructures.Data.Test/HeightStructuresFailureMechanismAssemblyFactoryTest.cs (.../HeightStructuresFailureMechanismAssemblyFactoryTest.cs) (revision e7f074df2c06a1c0b7d628f75dd87f0552d11e08) +++ Riskeer/HeightStructures/test/Riskeer.HeightStructures.Data.Test/HeightStructuresFailureMechanismAssemblyFactoryTest.cs (.../HeightStructuresFailureMechanismAssemblyFactoryTest.cs) (revision eeb9df26ec9ddb16249a6b4488df1d79fffdaf8e) @@ -34,6 +34,7 @@ using Riskeer.Common.Data.AssessmentSection; using Riskeer.Common.Data.Exceptions; using Riskeer.Common.Data.FailureMechanism; +using Riskeer.Common.Data.Structures; using Riskeer.Common.Data.TestUtil; using Riskeer.Common.Primitives; @@ -148,18 +149,36 @@ mocks.ReplayAll(); // Call - TestDelegate call = () => HeightStructuresFailureMechanismAssemblyFactory.AssembleDetailedAssessment( - null, - new HeightStructuresFailureMechanism(), - assessmentSection); + void Call() => HeightStructuresFailureMechanismAssemblyFactory.AssembleDetailedAssessment( + null, Enumerable.Empty>(), + new HeightStructuresFailureMechanism(), assessmentSection); // Assert - var exception = Assert.Throws(call); + var exception = Assert.Throws(Call); Assert.AreEqual("failureMechanismSectionResult", exception.ParamName); mocks.VerifyAll(); } [Test] + public void AssembleDetailedAssessment_CalculationScenariosNull_ThrowsArgumentNullException() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + // Call + void Call() => HeightStructuresFailureMechanismAssemblyFactory.AssembleDetailedAssessment( + new HeightStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()), + null, new HeightStructuresFailureMechanism(), assessmentSection); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("calculationScenarios", exception.ParamName); + mocks.VerifyAll(); + } + + [Test] public void AssembleDetailedAssessment_FailureMechanismNull_ThrowsArgumentNullException() { // Setup @@ -168,13 +187,12 @@ mocks.ReplayAll(); // Call - TestDelegate call = () => HeightStructuresFailureMechanismAssemblyFactory.AssembleDetailedAssessment( + void Call() => HeightStructuresFailureMechanismAssemblyFactory.AssembleDetailedAssessment( new HeightStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()), - null, - assessmentSection); + Enumerable.Empty>(), null, assessmentSection); // Assert - var exception = Assert.Throws(call); + var exception = Assert.Throws(Call); Assert.AreEqual("failureMechanism", exception.ParamName); mocks.VerifyAll(); } @@ -183,13 +201,12 @@ public void AssembleDetailedAssessment_AssessmentSectionNull_ThrowsArgumentNullException() { // Call - TestDelegate call = () => HeightStructuresFailureMechanismAssemblyFactory.AssembleDetailedAssessment( + void Call() => HeightStructuresFailureMechanismAssemblyFactory.AssembleDetailedAssessment( new HeightStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()), - new HeightStructuresFailureMechanism(), - null); + Enumerable.Empty>(), new HeightStructuresFailureMechanism(), null); // Assert - var exception = Assert.Throws(call); + var exception = Assert.Throws(Call); Assert.AreEqual("assessmentSection", exception.ParamName); } @@ -215,9 +232,8 @@ // Call HeightStructuresFailureMechanismAssemblyFactory.AssembleDetailedAssessment( - sectionResult, - failureMechanism, - assessmentSection); + sectionResult, Enumerable.Empty>(), + failureMechanism, assessmentSection); // Assert Assert.AreEqual(sectionResult.GetDetailedAssessmentProbability(failureMechanism, assessmentSection), @@ -248,9 +264,8 @@ // Call FailureMechanismSectionAssembly actualOutput = HeightStructuresFailureMechanismAssemblyFactory.AssembleDetailedAssessment( - sectionResult, - failureMechanism, - assessmentSection); + sectionResult, Enumerable.Empty>(), + failureMechanism, assessmentSection); // Assert FailureMechanismSectionAssembly calculatorOutput = calculator.DetailedAssessmentAssemblyOutput; @@ -278,13 +293,12 @@ calculator.ThrowExceptionOnCalculate = true; // Call - TestDelegate call = () => HeightStructuresFailureMechanismAssemblyFactory.AssembleDetailedAssessment( - sectionResult, - failureMechanism, - assessmentSection); + void Call() => HeightStructuresFailureMechanismAssemblyFactory.AssembleDetailedAssessment( + sectionResult, Enumerable.Empty>(), + failureMechanism, assessmentSection); // Assert - var exception = Assert.Throws(call); + var exception = Assert.Throws(Call); Exception innerException = exception.InnerException; Assert.IsInstanceOf(innerException); Assert.AreEqual(innerException.Message, exception.Message); @@ -458,18 +472,36 @@ mocks.ReplayAll(); // Call - TestDelegate call = () => HeightStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( - null, - new HeightStructuresFailureMechanism(), - assessmentSection); + void Call() => HeightStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( + null, Enumerable.Empty>(), + new HeightStructuresFailureMechanism(), assessmentSection); // Assert - var exception = Assert.Throws(call); + var exception = Assert.Throws(Call); Assert.AreEqual("failureMechanismSectionResult", exception.ParamName); mocks.VerifyAll(); } [Test] + public void AssembleCombinedAssessment_CalculationScenariosNull_ThrowsArgumentNullException() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + // Call + void Call() => HeightStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( + new HeightStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()), + null, new HeightStructuresFailureMechanism(), assessmentSection); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("calculationScenarios", exception.ParamName); + mocks.VerifyAll(); + } + + [Test] public void AssembleCombinedAssessment_FailureMechanismNull_ThrowsArgumentNullException() { // Setup @@ -478,13 +510,12 @@ mocks.ReplayAll(); // Call - TestDelegate call = () => HeightStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( + void Call() => HeightStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( new HeightStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()), - null, - assessmentSection); + Enumerable.Empty>(), null, assessmentSection); // Assert - var exception = Assert.Throws(call); + var exception = Assert.Throws(Call); Assert.AreEqual("failureMechanism", exception.ParamName); mocks.VerifyAll(); } @@ -493,13 +524,12 @@ public void AssembleCombinedAssessment_AssessmentSectionNull_ThrowsArgumentNullException() { // Call - TestDelegate call = () => HeightStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( + void Call() => HeightStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( new HeightStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()), - new HeightStructuresFailureMechanism(), - null); + Enumerable.Empty>(), new HeightStructuresFailureMechanism(), null); // Assert - var exception = Assert.Throws(call); + var exception = Assert.Throws(Call); Assert.AreEqual("assessmentSection", exception.ParamName); } @@ -527,9 +557,8 @@ // Call HeightStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( - sectionResult, - failureMechanism, - assessmentSection); + sectionResult, Enumerable.Empty>(), + failureMechanism, assessmentSection); // Assert AssemblyToolTestHelper.AssertAreEqual(calculator.SimpleAssessmentAssemblyOutput, calculator.CombinedSimpleAssemblyInput); @@ -564,9 +593,8 @@ // Call HeightStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( - sectionResult, - failureMechanism, - assessmentSection); + sectionResult, Enumerable.Empty>(), + failureMechanism, assessmentSection); // Assert AssemblyToolTestHelper.AssertAreEqual(calculator.SimpleAssessmentAssemblyOutput, calculator.CombinedSimpleAssemblyInput); @@ -596,9 +624,8 @@ // Call FailureMechanismSectionAssembly actualOutput = HeightStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( - sectionResult, - failureMechanism, - assessmentSection); + sectionResult, Enumerable.Empty>(), + failureMechanism, assessmentSection); // Assert Assert.AreSame(calculator.CombinedAssemblyOutput, actualOutput); @@ -625,13 +652,12 @@ calculator.ThrowExceptionOnCalculateCombinedAssembly = true; // Call - TestDelegate call = () => HeightStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( - sectionResult, - failureMechanism, - assessmentSection); + void Call() => HeightStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( + sectionResult, Enumerable.Empty>(), + failureMechanism, assessmentSection); // Assert - var exception = Assert.Throws(call); + var exception = Assert.Throws(Call); Exception innerException = exception.InnerException; Assert.IsInstanceOf(innerException); Assert.AreEqual(innerException.Message, exception.Message); Index: Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableHeightStructuresFailureMechanismFactory.cs =================================================================== diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -reeb9df26ec9ddb16249a6b4488df1d79fffdaf8e --- Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableHeightStructuresFailureMechanismFactory.cs (.../ExportableHeightStructuresFailureMechanismFactory.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea) +++ Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableHeightStructuresFailureMechanismFactory.cs (.../ExportableHeightStructuresFailureMechanismFactory.cs) (revision eeb9df26ec9ddb16249a6b4488df1d79fffdaf8e) @@ -21,9 +21,11 @@ using System; using System.Collections.Generic; +using System.Linq; using Riskeer.AssemblyTool.Data; using Riskeer.Common.Data.AssessmentSection; using Riskeer.Common.Data.Exceptions; +using Riskeer.Common.Data.Structures; using Riskeer.HeightStructures.Data; using Riskeer.Integration.IO.Assembly; using Riskeer.Integration.IO.Helpers; @@ -108,6 +110,7 @@ HeightStructuresFailureMechanismAssemblyFactory.AssembleSimpleAssessment(failureMechanismSectionResult); FailureMechanismSectionAssembly detailedAssembly = HeightStructuresFailureMechanismAssemblyFactory.AssembleDetailedAssessment(failureMechanismSectionResult, + failureMechanism.Calculations.Cast>(), failureMechanism, assessmentSection); FailureMechanismSectionAssembly tailorMadeAssembly = @@ -116,6 +119,7 @@ assessmentSection); FailureMechanismSectionAssembly combinedAssembly = HeightStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment(failureMechanismSectionResult, + failureMechanism.Calculations.Cast>(), failureMechanism, assessmentSection);