Index: Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableAssessmentSectionFactory.cs =================================================================== diff -u -r2077c21eebd3514bbc3f49f2cf9039100760f966 -r81a1ee36a074aaba2550106a26687e82c3e11109 --- Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableAssessmentSectionFactory.cs (.../ExportableAssessmentSectionFactory.cs) (revision 2077c21eebd3514bbc3f49f2cf9039100760f966) +++ Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableAssessmentSectionFactory.cs (.../ExportableAssessmentSectionFactory.cs) (revision 81a1ee36a074aaba2550106a26687e82c3e11109) @@ -107,79 +107,80 @@ AddFailureMechanismWhenInAssembly( exportableFailureMechanisms, assessmentSection.Piping, assessmentSection, PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism, - PipingFailureMechanismAssemblyFactory.AssembleSection); + PipingFailureMechanismAssemblyFactory.AssembleSection, ExportableFailureMechanismType.Generic); AddFailureMechanismWhenInAssembly( exportableFailureMechanisms, assessmentSection.MacroStabilityInwards, assessmentSection, MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism, - MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleSection); + MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleSection, ExportableFailureMechanismType.Generic); AddFailureMechanismWhenInAssembly( exportableFailureMechanisms, assessmentSection.GrassCoverErosionInwards, assessmentSection, GrassCoverErosionInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism, - GrassCoverErosionInwardsFailureMechanismAssemblyFactory.AssembleSection); + GrassCoverErosionInwardsFailureMechanismAssemblyFactory.AssembleSection, ExportableFailureMechanismType.Generic); AddFailureMechanismWhenInAssembly( exportableFailureMechanisms, assessmentSection.HeightStructures, assessmentSection, HeightStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism, - StructuresFailureMechanismAssemblyFactory.AssembleSection); + StructuresFailureMechanismAssemblyFactory.AssembleSection, ExportableFailureMechanismType.Generic); AddFailureMechanismWhenInAssembly( exportableFailureMechanisms, assessmentSection.ClosingStructures, assessmentSection, ClosingStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism, - StructuresFailureMechanismAssemblyFactory.AssembleSection); + StructuresFailureMechanismAssemblyFactory.AssembleSection, ExportableFailureMechanismType.Generic); AddFailureMechanismWhenInAssembly( exportableFailureMechanisms, assessmentSection.StabilityPointStructures, assessmentSection, StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism, - StructuresFailureMechanismAssemblyFactory.AssembleSection); + StructuresFailureMechanismAssemblyFactory.AssembleSection, ExportableFailureMechanismType.Generic); AddFailureMechanismWhenInAssembly( exportableFailureMechanisms, assessmentSection.StabilityStoneCover, assessmentSection, StabilityStoneCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism, - StabilityStoneCoverFailureMechanismAssemblyFactory.AssembleSection); + StabilityStoneCoverFailureMechanismAssemblyFactory.AssembleSection, ExportableFailureMechanismType.Generic); AddFailureMechanismWhenInAssembly( exportableFailureMechanisms, assessmentSection.WaveImpactAsphaltCover, assessmentSection, WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism, - WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.AssembleSection); + WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.AssembleSection, ExportableFailureMechanismType.Generic); AddFailureMechanismWhenInAssembly( exportableFailureMechanisms, assessmentSection.GrassCoverErosionOutwards, assessmentSection, GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism, - GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.AssembleSection); + GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.AssembleSection, ExportableFailureMechanismType.Generic); AddFailureMechanismWhenInAssembly( exportableFailureMechanisms, assessmentSection.DuneErosion, assessmentSection, DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism, - (sr, fm, ass) => FailureMechanismSectionAssemblyResultFactory.AssembleSection(sr, ass)); + (sr, fm, ass) => FailureMechanismSectionAssemblyResultFactory.AssembleSection(sr, ass), ExportableFailureMechanismType.Generic); AddFailureMechanismWhenInAssembly( exportableFailureMechanisms, assessmentSection.Microstability, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism, - FailureMechanismAssemblyFactory.AssembleSection); + FailureMechanismAssemblyFactory.AssembleSection, ExportableFailureMechanismType.Generic); AddFailureMechanismWhenInAssembly( exportableFailureMechanisms, assessmentSection.GrassCoverSlipOffOutwards, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism, - FailureMechanismAssemblyFactory.AssembleSection); + FailureMechanismAssemblyFactory.AssembleSection, ExportableFailureMechanismType.Generic); AddFailureMechanismWhenInAssembly( exportableFailureMechanisms, assessmentSection.GrassCoverSlipOffInwards, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism, - FailureMechanismAssemblyFactory.AssembleSection); + FailureMechanismAssemblyFactory.AssembleSection, ExportableFailureMechanismType.Generic); AddFailureMechanismWhenInAssembly( exportableFailureMechanisms, assessmentSection.PipingStructure, assessmentSection, PipingStructureFailureMechanismAssemblyFactory.AssembleFailureMechanism, - (sr, fm, ass) => FailureMechanismSectionAssemblyResultFactory.AssembleSection(sr, ass)); + (sr, fm, ass) => FailureMechanismSectionAssemblyResultFactory.AssembleSection(sr, ass), ExportableFailureMechanismType.Generic); AddFailureMechanismWhenInAssembly( exportableFailureMechanisms, assessmentSection.WaterPressureAsphaltCover, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism, - FailureMechanismAssemblyFactory.AssembleSection); + FailureMechanismAssemblyFactory.AssembleSection, ExportableFailureMechanismType.Generic); return exportableFailureMechanisms; } private static void AddFailureMechanismWhenInAssembly( List exportableFailureMechanisms, TFailureMechanism failureMechanism, IAssessmentSection assessmentSection, Func assembleFailureMechanismFunc, - Func assembleFailureMechanismSectionFunc) + Func assembleFailureMechanismSectionFunc, + ExportableFailureMechanismType failureMechanismType) where TFailureMechanism : IFailurePath where TSectionResult : FailureMechanismSectionResult { if (failureMechanism.InAssembly) { exportableFailureMechanisms.Add( ExportableFailureMechanismFactory.CreateExportableFailureMechanism( - failureMechanism, assessmentSection, assembleFailureMechanismFunc, assembleFailureMechanismSectionFunc)); + failureMechanism, assessmentSection, assembleFailureMechanismFunc, assembleFailureMechanismSectionFunc, failureMechanismType)); } } Index: Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableFailureMechanismFactory.cs =================================================================== diff -u -r94da57aae6e9a2199d2bfbb04fa20675f34bff46 -r81a1ee36a074aaba2550106a26687e82c3e11109 --- Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableFailureMechanismFactory.cs (.../ExportableFailureMechanismFactory.cs) (revision 94da57aae6e9a2199d2bfbb04fa20675f34bff46) +++ Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableFailureMechanismFactory.cs (.../ExportableFailureMechanismFactory.cs) (revision 81a1ee36a074aaba2550106a26687e82c3e11109) @@ -47,6 +47,7 @@ /// the failure mechanism assembly. /// The /// to perform the failure mechanism section assembly. + /// The type of the failure mechanism. /// The type of the failure mechanism. /// The type of the section result. /// An with assembly results. @@ -57,7 +58,8 @@ public static ExportableFailureMechanism CreateExportableFailureMechanism( TFailureMechanism failureMechanism, IAssessmentSection assessmentSection, Func assembleFailureMechanismFunc, - Func assembleFailureMechanismSectionFunc) + Func assembleFailureMechanismSectionFunc, + ExportableFailureMechanismType failureMechanismType) where TFailureMechanism : IFailurePath where TSectionResult : FailureMechanismSectionResult { @@ -87,7 +89,7 @@ failureMechanism.AssemblyResult.IsManualProbability()), CreateExportableFailureMechanismSectionResults( failureMechanism, assessmentSection, assembleFailureMechanismSectionFunc), - ExportableFailureMechanismType.Generic, failureMechanism.Code); + failureMechanismType, failureMechanism.Code); } /// Index: Riskeer/Integration/test/Riskeer.Integration.IO.Test/Factories/ExportableFailureMechanismFactoryTest.cs =================================================================== diff -u -r94da57aae6e9a2199d2bfbb04fa20675f34bff46 -r81a1ee36a074aaba2550106a26687e82c3e11109 --- Riskeer/Integration/test/Riskeer.Integration.IO.Test/Factories/ExportableFailureMechanismFactoryTest.cs (.../ExportableFailureMechanismFactoryTest.cs) (revision 94da57aae6e9a2199d2bfbb04fa20675f34bff46) +++ Riskeer/Integration/test/Riskeer.Integration.IO.Test/Factories/ExportableFailureMechanismFactoryTest.cs (.../ExportableFailureMechanismFactoryTest.cs) (revision 81a1ee36a074aaba2550106a26687e82c3e11109) @@ -45,9 +45,11 @@ var assessmentSection = mocks.Stub(); mocks.ReplayAll(); + var random = new Random(21); + // Call void Call() => ExportableFailureMechanismFactory.CreateExportableFailureMechanism( - null, assessmentSection, (fm, section) => double.NaN, (sr, fm, section) => null); + null, assessmentSection, (fm, section) => double.NaN, (sr, fm, section) => null, random.NextEnumValue()); // Assert var exception = Assert.Throws(Call); @@ -58,9 +60,12 @@ [Test] public void CreateExportableFailureMechanism_AssessmentSectionNull_ThrowsArgumentNullException() { + // Setup + var random = new Random(21); + // Call void Call() => ExportableFailureMechanismFactory.CreateExportableFailureMechanism( - new TestFailureMechanism(), null, (fm, section) => double.NaN, (sr, fm, section) => null); + new TestFailureMechanism(), null, (fm, section) => double.NaN, (sr, fm, section) => null, random.NextEnumValue()); // Assert var exception = Assert.Throws(Call); @@ -75,9 +80,11 @@ var assessmentSection = mocks.Stub(); mocks.ReplayAll(); + var random = new Random(21); + // Call void Call() => ExportableFailureMechanismFactory.CreateExportableFailureMechanism( - new TestFailureMechanism(), assessmentSection, null, (sr, fm, section) => null); + new TestFailureMechanism(), assessmentSection, null, (sr, fm, section) => null, random.NextEnumValue()); // Assert var exception = Assert.Throws(Call); @@ -93,9 +100,11 @@ var assessmentSection = mocks.Stub(); mocks.ReplayAll(); + var random = new Random(21); + // Call void Call() => ExportableFailureMechanismFactory.CreateExportableFailureMechanism( - new TestFailureMechanism(), assessmentSection, (fm, section) => double.NaN, null); + new TestFailureMechanism(), assessmentSection, (fm, section) => double.NaN, null, random.NextEnumValue()); // Assert var exception = Assert.Throws(Call); @@ -117,14 +126,16 @@ random.NextDouble(), random.NextDouble(), random.NextDouble(), random.NextEnumValue()); + var failureMechanismType = random.NextEnumValue(); + // Call ExportableFailureMechanism exportableFailureMechanism = ExportableFailureMechanismFactory.CreateExportableFailureMechanism( failureMechanism, assessmentSection, (fm, section) => probability, - (sr, fm, section) => expectedSectionOutput); + (sr, fm, section) => expectedSectionOutput, failureMechanismType); // Assert - Assert.AreEqual(ExportableFailureMechanismType.Generic, exportableFailureMechanism.FailureMechanismType); + Assert.AreEqual(failureMechanismType, exportableFailureMechanism.FailureMechanismType); Assert.AreEqual(failureMechanism.Code, exportableFailureMechanism.Code); ExportableFailureMechanismAssemblyResult exportableFailureMechanismAssembly = exportableFailureMechanism.FailureMechanismAssembly;