Index: Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.IO.TestUtil/ExportableFailureMechanismSectionTestHelper.cs
===================================================================
diff -u -rf56c6e3627abb4f2399032992d4793089f86d419 -rd41d466b016e29fb8e52680f61a8cb744be378ce
--- Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.IO.TestUtil/ExportableFailureMechanismSectionTestHelper.cs (.../ExportableFailureMechanismSectionTestHelper.cs) (revision f56c6e3627abb4f2399032992d4793089f86d419)
+++ Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.IO.TestUtil/ExportableFailureMechanismSectionTestHelper.cs (.../ExportableFailureMechanismSectionTestHelper.cs) (revision d41d466b016e29fb8e52680f61a8cb744be378ce)
@@ -43,7 +43,8 @@
///
/// - The number of sections between and
/// do not match.
- /// - The geometry of any the sections are not equal.
+ /// - The geometry of the sections are not equal.
+ /// - The id does not contain the expected value.
///
public static void AssertExportableFailureMechanismSections(IEnumerable expectedSections,
IEnumerable actualSections)
@@ -56,6 +57,8 @@
{
FailureMechanismSection expectedSection = expectedSections.ElementAt(i);
ExportableFailureMechanismSection actualSection = actualSections.ElementAt(i);
+
+ Assert.AreEqual($"Bv.{i}", actualSection.Id);
double expectedEndDistance = expectedStartDistance + Math2D.Length(expectedSection.Points);
Index: Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableAssessmentSectionFactory.cs
===================================================================
diff -u -r48cf7bc97178507b34018066b407c85f7f47d3a5 -rd41d466b016e29fb8e52680f61a8cb744be378ce
--- Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableAssessmentSectionFactory.cs (.../ExportableAssessmentSectionFactory.cs) (revision 48cf7bc97178507b34018066b407c85f7f47d3a5)
+++ Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableAssessmentSectionFactory.cs (.../ExportableAssessmentSectionFactory.cs) (revision d41d466b016e29fb8e52680f61a8cb744be378ce)
@@ -85,7 +85,7 @@
assessmentSection.ReferenceLine.Points,
CreateExportableFailureMechanismSectionCollections(idGenerator, registry, assessmentSection),
CreateExportableAssessmentSectionAssemblyResult(idGenerator, assessmentSection),
- CreateExportableFailureMechanisms(idGenerator, assessmentSection),
+ CreateExportableFailureMechanisms(idGenerator, registry, assessmentSection),
CreateExportableCombinedSectionAssemblyCollection(assessmentSection));
}
@@ -149,73 +149,75 @@
/// for failure mechanisms that are in assembly based on .
///
/// The generator to generate ids for the exportable components.
+ /// The to keep track of the created items.
/// The assessment section to create a collection of
/// with probability for.
/// A collection of based on failure
/// mechanisms that are in assembly.
/// Thrown when assembly results cannot be created for .
- private static IEnumerable CreateExportableFailureMechanisms(IdentifierGenerator idGenerator, AssessmentSection assessmentSection)
+ private static IEnumerable CreateExportableFailureMechanisms(
+ IdentifierGenerator idGenerator, ExportableModelRegistry registry, AssessmentSection assessmentSection)
{
var exportableFailureMechanisms = new List();
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, exportableFailureMechanisms, assessmentSection.Piping, assessmentSection, PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.Piping, assessmentSection, PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism,
PipingFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, exportableFailureMechanisms, assessmentSection.GrassCoverErosionInwards, assessmentSection, GrassCoverErosionInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.GrassCoverErosionInwards, assessmentSection, GrassCoverErosionInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism,
GrassCoverErosionInwardsFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, exportableFailureMechanisms, assessmentSection.MacroStabilityInwards, assessmentSection, MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.MacroStabilityInwards, assessmentSection, MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism,
MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, exportableFailureMechanisms, assessmentSection.Microstability, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.Microstability, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism,
FailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, exportableFailureMechanisms, assessmentSection.StabilityStoneCover, assessmentSection, StabilityStoneCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.StabilityStoneCover, assessmentSection, StabilityStoneCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism,
StabilityStoneCoverFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, exportableFailureMechanisms, assessmentSection.WaveImpactAsphaltCover, assessmentSection, WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.WaveImpactAsphaltCover, assessmentSection, WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism,
WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, exportableFailureMechanisms, assessmentSection.WaterPressureAsphaltCover, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.WaterPressureAsphaltCover, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism,
FailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, exportableFailureMechanisms, assessmentSection.GrassCoverErosionOutwards, assessmentSection, GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.GrassCoverErosionOutwards, assessmentSection, GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism,
GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, exportableFailureMechanisms, assessmentSection.GrassCoverSlipOffOutwards, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.GrassCoverSlipOffOutwards, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism,
FailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, exportableFailureMechanisms, assessmentSection.GrassCoverSlipOffInwards, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.GrassCoverSlipOffInwards, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism,
FailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, exportableFailureMechanisms, assessmentSection.HeightStructures, assessmentSection, HeightStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.HeightStructures, assessmentSection, HeightStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism,
StructuresFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, exportableFailureMechanisms, assessmentSection.ClosingStructures, assessmentSection, ClosingStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.ClosingStructures, assessmentSection, ClosingStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism,
StructuresFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, exportableFailureMechanisms, assessmentSection.PipingStructure, assessmentSection, PipingStructureFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.PipingStructure, assessmentSection, PipingStructureFailureMechanismAssemblyFactory.AssembleFailureMechanism,
(sr, fm, ass) => FailureMechanismSectionAssemblyResultFactory.AssembleSection(sr, ass));
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, exportableFailureMechanisms, assessmentSection.StabilityPointStructures, assessmentSection, StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.StabilityPointStructures, assessmentSection, StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism,
StructuresFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, exportableFailureMechanisms, assessmentSection.DuneErosion, assessmentSection, DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.DuneErosion, assessmentSection, DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism,
(sr, fm, ass) => FailureMechanismSectionAssemblyResultFactory.AssembleSection(sr, ass));
foreach (SpecificFailureMechanism specificFailureMechanism in assessmentSection.SpecificFailureMechanisms)
@@ -224,7 +226,7 @@
{
exportableFailureMechanisms.Add(
ExportableFailureMechanismFactory.CreateExportableSpecificFailureMechanism(
- idGenerator, specificFailureMechanism, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, specificFailureMechanism, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism,
FailureMechanismAssemblyFactory.AssembleSection));
}
}
@@ -233,7 +235,8 @@
}
private static void AddGenericFailureMechanismWhenInAssembly(
- IdentifierGenerator idGenerator, List exportableFailureMechanisms, TFailureMechanism failureMechanism, IAssessmentSection assessmentSection,
+ IdentifierGenerator idGenerator, ExportableModelRegistry registry, List exportableFailureMechanisms,
+ TFailureMechanism failureMechanism, IAssessmentSection assessmentSection,
Func assembleFailureMechanismFunc,
Func assembleFailureMechanismSectionFunc)
where TFailureMechanism : IFailureMechanism
@@ -243,7 +246,7 @@
{
exportableFailureMechanisms.Add(
ExportableFailureMechanismFactory.CreateExportableGenericFailureMechanism(
- idGenerator, failureMechanism, assessmentSection, assembleFailureMechanismFunc, assembleFailureMechanismSectionFunc));
+ idGenerator, registry, failureMechanism, assessmentSection, assembleFailureMechanismFunc, assembleFailureMechanismSectionFunc));
}
}
Index: Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableFailureMechanismFactory.cs
===================================================================
diff -u -rd45c4d685f147e9ef02db77b8085ce59edf92d08 -rd41d466b016e29fb8e52680f61a8cb744be378ce
--- Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableFailureMechanismFactory.cs (.../ExportableFailureMechanismFactory.cs) (revision d45c4d685f147e9ef02db77b8085ce59edf92d08)
+++ Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableFailureMechanismFactory.cs (.../ExportableFailureMechanismFactory.cs) (revision d41d466b016e29fb8e52680f61a8cb744be378ce)
@@ -42,6 +42,7 @@
/// with assembly results based on the input parameters.
///
/// The generator to generate ids for the exportable components.
+ /// The to keep track of the created items.
/// The failure mechanism to create an for.
/// The assessment section the failure mechanism belongs to.
/// The to perform
@@ -51,12 +52,10 @@
/// The type of the failure mechanism.
/// The type of the section result.
/// An with assembly results.
- /// Thrown when , ,
- /// , or
- /// is null.
+ /// Thrown when any parameter is null.
/// Thrown when assembly results cannot be created.
public static ExportableGenericFailureMechanism CreateExportableGenericFailureMechanism(
- IdentifierGenerator idGenerator, TFailureMechanism failureMechanism, IAssessmentSection assessmentSection,
+ IdentifierGenerator idGenerator, ExportableModelRegistry registry, TFailureMechanism failureMechanism, IAssessmentSection assessmentSection,
Func assembleFailureMechanismFunc,
Func assembleFailureMechanismSectionFunc)
where TFailureMechanism : IFailureMechanism
@@ -67,6 +66,11 @@
throw new ArgumentNullException(nameof(idGenerator));
}
+ if (registry == null)
+ {
+ throw new ArgumentNullException(nameof(registry));
+ }
+
if (failureMechanism == null)
{
throw new ArgumentNullException(nameof(failureMechanism));
@@ -92,7 +96,8 @@
new ExportableFailureMechanismAssemblyResult(
assemblyResultWrapper.AssemblyResult,
ExportableAssemblyMethodFactory.Create(assemblyResultWrapper.AssemblyMethod)),
- CreateExportableFailureMechanismSectionResults(idGenerator, failureMechanism, assessmentSection, assembleFailureMechanismSectionFunc),
+ CreateExportableFailureMechanismSectionResults(idGenerator, registry,
+ failureMechanism, assessmentSection, assembleFailureMechanismSectionFunc),
failureMechanism.Code);
}
@@ -101,19 +106,18 @@
/// with assembly results based on the input parameters.
///
/// The generator to generate ids for the exportable components.
+ /// The to keep track of the created items.
/// The failure mechanism to create an for.
/// The assessment section the failure mechanism belongs to.
/// The to perform
/// the failure mechanism assembly.
/// The
/// to perform the failure mechanism section assembly.
/// An with assembly results.
- /// Thrown when , ,
- /// , or
- /// is null.
+ /// Thrown when any parameter is null.
/// Thrown when assembly results cannot be created.
public static ExportableSpecificFailureMechanism CreateExportableSpecificFailureMechanism(
- IdentifierGenerator idGenerator, SpecificFailureMechanism failureMechanism, IAssessmentSection assessmentSection,
+ IdentifierGenerator idGenerator, ExportableModelRegistry registry, SpecificFailureMechanism failureMechanism, IAssessmentSection assessmentSection,
Func assembleFailureMechanismFunc,
Func assembleFailureMechanismSectionFunc)
{
@@ -122,6 +126,11 @@
throw new ArgumentNullException(nameof(idGenerator));
}
+ if (registry == null)
+ {
+ throw new ArgumentNullException(nameof(registry));
+ }
+
if (failureMechanism == null)
{
throw new ArgumentNullException(nameof(failureMechanism));
@@ -147,7 +156,8 @@
new ExportableFailureMechanismAssemblyResult(
assemblyResultWrapper.AssemblyResult,
ExportableAssemblyMethodFactory.Create(assemblyResultWrapper.AssemblyMethod)),
- CreateExportableFailureMechanismSectionResults(idGenerator, failureMechanism, assessmentSection, assembleFailureMechanismSectionFunc),
+ CreateExportableFailureMechanismSectionResults(idGenerator, registry, failureMechanism,
+ assessmentSection, assembleFailureMechanismSectionFunc),
failureMechanism.Name);
}
@@ -156,6 +166,7 @@
/// with assembly results based on .
///
/// The generator to generate ids for the exportable components.
+ /// The to keep track of the created items.
/// The failure mechanism to create a collection of
/// for.
/// The to use in the assembly.
@@ -166,24 +177,23 @@
/// A collection of .
/// Thrown when assembly results cannot be created.
private static IEnumerable CreateExportableFailureMechanismSectionResults
- (IdentifierGenerator idGenerator, TFailureMechanism failureMechanism, IAssessmentSection assessmentSection,
- Func assembleFailureMechanismSectionFunc)
+ (
+ IdentifierGenerator idGenerator, ExportableModelRegistry registry, TFailureMechanism failureMechanism, IAssessmentSection assessmentSection,
+ Func assembleFailureMechanismSectionFunc)
where TFailureMechanism : IFailureMechanism
where TSectionResult : FailureMechanismSectionResult
{
- IDictionary failureMechanismSectionsLookup =
- ExportableFailureMechanismSectionHelper.CreateFailureMechanismSectionResultLookup(failureMechanism.SectionResults);
-
var exportableResults = new List();
- foreach (KeyValuePair failureMechanismSectionPair in failureMechanismSectionsLookup)
+ foreach (TSectionResult sectionResult in failureMechanism.SectionResults)
{
FailureMechanismSectionAssemblyResultWrapper assemblyResultWrapper = assembleFailureMechanismSectionFunc(
- failureMechanismSectionPair.Key, failureMechanism, assessmentSection);
+ sectionResult, failureMechanism, assessmentSection);
FailureMechanismSectionAssemblyResult assemblyResult = assemblyResultWrapper.AssemblyResult;
exportableResults.Add(
new ExportableFailureMechanismSectionAssemblyResult(
- idGenerator.GetNewId("Fa"), failureMechanismSectionPair.Value, assemblyResult.SectionProbability, assemblyResult.FailureMechanismSectionAssemblyGroup,
+ idGenerator.GetNewId(Resources.ExportableFailureMechanismSectionAssemblyResult_IdPrefix), registry.Get(sectionResult.Section),
+ assemblyResult.SectionProbability, assemblyResult.FailureMechanismSectionAssemblyGroup,
ExportableAssemblyMethodFactory.Create(assemblyResultWrapper.AssemblyGroupMethod),
ExportableAssemblyMethodFactory.Create(assemblyResultWrapper.ProbabilityMethod)));
}
Index: Riskeer/Integration/src/Riskeer.Integration.IO/Properties/Resources.Designer.cs
===================================================================
diff -u -r234c67f206c92dde881cc2c15e2cb4299be50741 -rd41d466b016e29fb8e52680f61a8cb744be378ce
--- Riskeer/Integration/src/Riskeer.Integration.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 234c67f206c92dde881cc2c15e2cb4299be50741)
+++ Riskeer/Integration/src/Riskeer.Integration.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision d41d466b016e29fb8e52680f61a8cb744be378ce)
@@ -154,6 +154,15 @@
}
///
+ /// Looks up a localized string similar to Fa.
+ ///
+ public static string ExportableFailureMechanismSectionAssemblyResult_IdPrefix {
+ get {
+ return ResourceManager.GetString("ExportableFailureMechanismSectionAssemblyResult_IdPrefix", resourceCulture);
+ }
+ }
+
+ ///
/// Looks up a localized string similar to Vi.
///
public static string ExportableFailureMechanismSectionCollection_IdPrefix {
Index: Riskeer/Integration/src/Riskeer.Integration.IO/Properties/Resources.resx
===================================================================
diff -u -r234c67f206c92dde881cc2c15e2cb4299be50741 -rd41d466b016e29fb8e52680f61a8cb744be378ce
--- Riskeer/Integration/src/Riskeer.Integration.IO/Properties/Resources.resx (.../Resources.resx) (revision 234c67f206c92dde881cc2c15e2cb4299be50741)
+++ Riskeer/Integration/src/Riskeer.Integration.IO/Properties/Resources.resx (.../Resources.resx) (revision d41d466b016e29fb8e52680f61a8cb744be378ce)
@@ -230,4 +230,7 @@
Bv
+
+ Fa
+
\ No newline at end of file
Index: Riskeer/Integration/test/Riskeer.Integration.IO.Test/Factories/ExportableFailureMechanismFactoryTest.cs
===================================================================
diff -u -r3fedb02f6284e45456911f5831bb399ecc85e307 -rd41d466b016e29fb8e52680f61a8cb744be378ce
--- Riskeer/Integration/test/Riskeer.Integration.IO.Test/Factories/ExportableFailureMechanismFactoryTest.cs (.../ExportableFailureMechanismFactoryTest.cs) (revision 3fedb02f6284e45456911f5831bb399ecc85e307)
+++ Riskeer/Integration/test/Riskeer.Integration.IO.Test/Factories/ExportableFailureMechanismFactoryTest.cs (.../ExportableFailureMechanismFactoryTest.cs) (revision d41d466b016e29fb8e52680f61a8cb744be378ce)
@@ -50,7 +50,7 @@
// Call
void Call() => ExportableFailureMechanismFactory.CreateExportableGenericFailureMechanism(
- null, new TestFailureMechanism(), assessmentSection, (fm, section) => null, (sr, fm, section) => null);
+ null, new ExportableModelRegistry(), new TestFailureMechanism(), assessmentSection, (fm, section) => null, (sr, fm, section) => null);
// Assert
var exception = Assert.Throws(Call);
@@ -59,6 +59,24 @@
}
[Test]
+ public void CreateExportableGenericFailureMechanism_RegistryNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var assessmentSection = mocks.Stub();
+ mocks.ReplayAll();
+
+ // Call
+ void Call() => ExportableFailureMechanismFactory.CreateExportableGenericFailureMechanism(
+ new IdentifierGenerator(), null, new TestFailureMechanism(), assessmentSection, (fm, section) => null, (sr, fm, section) => null);
+
+ // Assert
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("registry", exception.ParamName);
+ mocks.VerifyAll();
+ }
+
+ [Test]
public void CreateExportableGenericFailureMechanism_FailureMechanismNull_ThrowsArgumentNullException()
{
// Setup
@@ -68,7 +86,7 @@
// Call
void Call() => ExportableFailureMechanismFactory.CreateExportableGenericFailureMechanism(
- new IdentifierGenerator(), null, assessmentSection, (fm, section) => null, (sr, fm, section) => null);
+ new IdentifierGenerator(), new ExportableModelRegistry(), null, assessmentSection, (fm, section) => null, (sr, fm, section) => null);
// Assert
var exception = Assert.Throws(Call);
@@ -81,7 +99,7 @@
{
// Call
void Call() => ExportableFailureMechanismFactory.CreateExportableGenericFailureMechanism(
- new IdentifierGenerator(), new TestFailureMechanism(), null, (fm, section) => null, (sr, fm, section) => null);
+ new IdentifierGenerator(), new ExportableModelRegistry(), new TestFailureMechanism(), null, (fm, section) => null, (sr, fm, section) => null);
// Assert
var exception = Assert.Throws(Call);
@@ -98,7 +116,7 @@
// Call
void Call() => ExportableFailureMechanismFactory.CreateExportableGenericFailureMechanism(
- new IdentifierGenerator(), new TestFailureMechanism(), assessmentSection, null, (sr, fm, section) => null);
+ new IdentifierGenerator(), new ExportableModelRegistry(), new TestFailureMechanism(), assessmentSection, null, (sr, fm, section) => null);
// Assert
var exception = Assert.Throws(Call);
@@ -116,7 +134,7 @@
// Call
void Call() => ExportableFailureMechanismFactory.CreateExportableGenericFailureMechanism(
- new IdentifierGenerator(), new TestFailureMechanism(), assessmentSection, (fm, section) => null, null);
+ new IdentifierGenerator(), new ExportableModelRegistry(), new TestFailureMechanism(), assessmentSection, (fm, section) => null, null);
// Assert
var exception = Assert.Throws(Call);
@@ -139,10 +157,13 @@
var idGenerator = new IdentifierGenerator();
+ var registry = new ExportableModelRegistry();
+ RegisterFailureMechanismSections(registry, failureMechanism.Sections);
+
// Call
ExportableGenericFailureMechanism exportableFailureMechanism =
ExportableFailureMechanismFactory.CreateExportableGenericFailureMechanism(
- idGenerator, failureMechanism, assessmentSection, (fm, section) => new FailureMechanismAssemblyResultWrapper(probability, assemblyMethod),
+ idGenerator, registry, failureMechanism, assessmentSection, (fm, section) => new FailureMechanismAssemblyResultWrapper(probability, assemblyMethod),
(sr, fm, section) => expectedSectionOutput);
// Assert
@@ -171,7 +192,7 @@
// Call
void Call() => ExportableFailureMechanismFactory.CreateExportableSpecificFailureMechanism(
- null, new SpecificFailureMechanism(), assessmentSection, (fm, section) => null, (sr, fm, section) => null);
+ null, new ExportableModelRegistry(), new SpecificFailureMechanism(), assessmentSection, (fm, section) => null, (sr, fm, section) => null);
// Assert
var exception = Assert.Throws(Call);
@@ -180,6 +201,24 @@
}
[Test]
+ public void CreateExportableSpecificFailureMechanism_RegistryNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var assessmentSection = mocks.Stub();
+ mocks.ReplayAll();
+
+ // Call
+ void Call() => ExportableFailureMechanismFactory.CreateExportableSpecificFailureMechanism(
+ new IdentifierGenerator(), null, new SpecificFailureMechanism(), assessmentSection, (fm, section) => null, (sr, fm, section) => null);
+
+ // Assert
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("registry", exception.ParamName);
+ mocks.VerifyAll();
+ }
+
+ [Test]
public void CreateExportableSpecificFailureMechanism_FailureMechanismNull_ThrowsArgumentNullException()
{
// Setup
@@ -189,7 +228,7 @@
// Call
void Call() => ExportableFailureMechanismFactory.CreateExportableSpecificFailureMechanism(
- new IdentifierGenerator(), null, assessmentSection, (fm, section) => null, (sr, fm, section) => null);
+ new IdentifierGenerator(), new ExportableModelRegistry(), null, assessmentSection, (fm, section) => null, (sr, fm, section) => null);
// Assert
var exception = Assert.Throws(Call);
@@ -202,7 +241,7 @@
{
// Call
void Call() => ExportableFailureMechanismFactory.CreateExportableSpecificFailureMechanism(
- new IdentifierGenerator(), new SpecificFailureMechanism(), null, (fm, section) => null, (sr, fm, section) => null);
+ new IdentifierGenerator(), new ExportableModelRegistry(), new SpecificFailureMechanism(), null, (fm, section) => null, (sr, fm, section) => null);
// Assert
var exception = Assert.Throws(Call);
@@ -219,7 +258,7 @@
// Call
void Call() => ExportableFailureMechanismFactory.CreateExportableSpecificFailureMechanism(
- new IdentifierGenerator(), new SpecificFailureMechanism(), assessmentSection, null, (sr, fm, section) => null);
+ new IdentifierGenerator(), new ExportableModelRegistry(), new SpecificFailureMechanism(), assessmentSection, null, (sr, fm, section) => null);
// Assert
var exception = Assert.Throws(Call);
@@ -237,7 +276,7 @@
// Call
void Call() => ExportableFailureMechanismFactory.CreateExportableSpecificFailureMechanism(
- new IdentifierGenerator(), new SpecificFailureMechanism(), assessmentSection, (fm, section) => null, null);
+ new IdentifierGenerator(), new ExportableModelRegistry(), new SpecificFailureMechanism(), assessmentSection, (fm, section) => null, null);
// Assert
var exception = Assert.Throws(Call);
@@ -259,11 +298,13 @@
FailureMechanismSectionAssemblyResultWrapper expectedSectionOutput = FailureMechanismSectionAssemblyResultWrapperTestFactory.Create();
var idGenerator = new IdentifierGenerator();
+ var registry = new ExportableModelRegistry();
+ RegisterFailureMechanismSections(registry, failureMechanism.Sections);
// Call
ExportableSpecificFailureMechanism exportableFailureMechanism =
ExportableFailureMechanismFactory.CreateExportableSpecificFailureMechanism(
- idGenerator, failureMechanism, assessmentSection, (fm, section) => new FailureMechanismAssemblyResultWrapper(probability, assemblyMethod),
+ idGenerator, registry, failureMechanism, assessmentSection, (fm, section) => new FailureMechanismAssemblyResultWrapper(probability, assemblyMethod),
(sr, fm, section) => expectedSectionOutput);
// Assert
@@ -281,5 +322,11 @@
ExportableFailureMechanismSectionAssemblyResultTestHelper.AssertExportableFailureMechanismSectionResults(
expectedSectionOutput, exportableFailureMechanismSections, exportableFailureMechanism.SectionAssemblyResults);
}
+
+ private static void RegisterFailureMechanismSections(ExportableModelRegistry registry, IEnumerable failureMechanismSections)
+ {
+ ExportableFailureMechanismSectionCollectionFactory.CreateExportableFailureMechanismSectionCollection(
+ new IdentifierGenerator(), registry, failureMechanismSections);
+ }
}
}
\ No newline at end of file