Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableFailureMechanismFactory.cs
===================================================================
diff -u
--- Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableFailureMechanismFactory.cs (revision 0)
+++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableFailureMechanismFactory.cs (revision 0fd76a0bde626efdb5058ada2df39285ca4333cf)
@@ -0,0 +1,34 @@
+using System.Linq;
+using Ringtoets.AssemblyTool.Data;
+using Ringtoets.Integration.IO.Assembly;
+
+namespace Ringtoets.Integration.IO.Factories
+{
+ ///
+ /// Factory to create instances of .
+ ///
+ public static class ExportableFailureMechanismFactory
+ {
+ ///
+ /// Creates a default instance of a
+ /// with a probability based on its input parameters.
+ ///
+ /// The of the failure mechanism.
+ /// The of the failure mechanism.
+ /// The assembly method which is used to obtain the general assembly result of the failure mechanism.
+ /// A with default values.
+ public static ExportableFailureMechanism CreateDefaultExportableFailureMechanismWithProbability(ExportableFailureMechanismType failureMechanismCode,
+ ExportableFailureMechanismGroup failureMechanismGroup,
+ ExportableAssemblyMethod assemblyMethod)
+ {
+ return new ExportableFailureMechanism(
+ new ExportableFailureMechanismAssemblyResultWithProbability(assemblyMethod,
+ FailureMechanismAssemblyCategoryGroup.NotApplicable,
+ 0),
+ Enumerable.Empty(),
+ Enumerable.Empty(),
+ failureMechanismCode,
+ failureMechanismGroup);
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableMacroStabilityInwardsFailureMechanismFactory.cs
===================================================================
diff -u -r80ea1805f5f517b9723f9195e8674cb2bc8f3b9f -r0fd76a0bde626efdb5058ada2df39285ca4333cf
--- Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableMacroStabilityInwardsFailureMechanismFactory.cs (.../ExportableMacroStabilityInwardsFailureMechanismFactory.cs) (revision 80ea1805f5f517b9723f9195e8674cb2bc8f3b9f)
+++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableMacroStabilityInwardsFailureMechanismFactory.cs (.../ExportableMacroStabilityInwardsFailureMechanismFactory.cs) (revision 0fd76a0bde626efdb5058ada2df39285ca4333cf)
@@ -15,6 +15,10 @@
///
public static class ExportableMacroStabilityInwardsFailureMechanismFactory
{
+ private const ExportableFailureMechanismGroup failureMechanismGroup = ExportableFailureMechanismGroup.Group2;
+ private const ExportableFailureMechanismType failureMechanismCode = ExportableFailureMechanismType.STBI;
+ private const ExportableAssemblyMethod failureMechanismAssemblyMethod = ExportableAssemblyMethod.WBI1B1;
+
///
/// Creates a
/// with assmebly results based on the input parameters.
@@ -39,6 +43,13 @@
throw new ArgumentNullException(nameof(assessmentSection));
}
+ if (!failureMechanism.IsRelevant)
+ {
+ return ExportableFailureMechanismFactory.CreateDefaultExportableFailureMechanismWithProbability(failureMechanismCode,
+ failureMechanismGroup,
+ failureMechanismAssemblyMethod);
+ }
+
FailureMechanismAssembly failureMechanismAssembly = MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism, assessmentSection);
Dictionary failureMechanismSectionsLookup =
@@ -48,14 +59,14 @@
ExportableFailureMechanismSectionFactory.CreateExportableFailureMechanismSection(sectionResult.Section));
return new ExportableFailureMechanism(
- new ExportableFailureMechanismAssemblyResultWithProbability(ExportableAssemblyMethod.WBI1B1,
+ new ExportableFailureMechanismAssemblyResultWithProbability(failureMechanismAssemblyMethod,
failureMechanismAssembly.Group,
failureMechanismAssembly.Probability),
failureMechanismSectionsLookup.Values, CreateExportableMacroStabilityInwardsFailureMechanismSectionResults(failureMechanismSectionsLookup,
failureMechanism,
assessmentSection),
- ExportableFailureMechanismType.STBI,
- ExportableFailureMechanismGroup.Group2);
+ failureMechanismCode,
+ failureMechanismGroup);
}
///
Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportablePipingFailureMechanismFactory.cs
===================================================================
diff -u -r80ea1805f5f517b9723f9195e8674cb2bc8f3b9f -r0fd76a0bde626efdb5058ada2df39285ca4333cf
--- Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportablePipingFailureMechanismFactory.cs (.../ExportablePipingFailureMechanismFactory.cs) (revision 80ea1805f5f517b9723f9195e8674cb2bc8f3b9f)
+++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportablePipingFailureMechanismFactory.cs (.../ExportablePipingFailureMechanismFactory.cs) (revision 0fd76a0bde626efdb5058ada2df39285ca4333cf)
@@ -15,6 +15,10 @@
///
public static class ExportablePipingFailureMechanismFactory
{
+ private const ExportableFailureMechanismType failureMechanismCode = ExportableFailureMechanismType.STPH;
+ private const ExportableFailureMechanismGroup failureMechanismGroup = ExportableFailureMechanismGroup.Group2;
+ private const ExportableAssemblyMethod failureMechanismAssemblyMethod = ExportableAssemblyMethod.WBI1B1;
+
///
/// Creates a
/// with assmebly results based on the input parameters.
@@ -39,6 +43,13 @@
throw new ArgumentNullException(nameof(assessmentSection));
}
+ if (!failureMechanism.IsRelevant)
+ {
+ return ExportableFailureMechanismFactory.CreateDefaultExportableFailureMechanismWithProbability(failureMechanismCode,
+ failureMechanismGroup,
+ failureMechanismAssemblyMethod);
+ }
+
FailureMechanismAssembly failureMechanismAssembly = PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism, assessmentSection);
Dictionary failureMechanismSectionsLookup =
@@ -47,14 +58,14 @@
sectionResult => ExportableFailureMechanismSectionFactory.CreateExportableFailureMechanismSection(sectionResult.Section));
return new ExportableFailureMechanism(
- new ExportableFailureMechanismAssemblyResultWithProbability(ExportableAssemblyMethod.WBI1B1,
+ new ExportableFailureMechanismAssemblyResultWithProbability(failureMechanismAssemblyMethod,
failureMechanismAssembly.Group,
failureMechanismAssembly.Probability),
failureMechanismSectionsLookup.Values, CreateExportablePipingFailureMechanismSectionResults(failureMechanismSectionsLookup,
failureMechanism,
assessmentSection),
- ExportableFailureMechanismType.STPH,
- ExportableFailureMechanismGroup.Group2);
+ failureMechanismCode,
+ failureMechanismGroup);
}
///
Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Ringtoets.Integration.IO.csproj
===================================================================
diff -u -rfe7f036a5bea0c75556c1f1f8d1d8c422acf5177 -r0fd76a0bde626efdb5058ada2df39285ca4333cf
--- Ringtoets/Integration/src/Ringtoets.Integration.IO/Ringtoets.Integration.IO.csproj (.../Ringtoets.Integration.IO.csproj) (revision fe7f036a5bea0c75556c1f1f8d1d8c422acf5177)
+++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Ringtoets.Integration.IO.csproj (.../Ringtoets.Integration.IO.csproj) (revision 0fd76a0bde626efdb5058ada2df39285ca4333cf)
@@ -37,6 +37,7 @@
+
Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableFailureMechanismFactoryTest.cs
===================================================================
diff -u
--- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableFailureMechanismFactoryTest.cs (revision 0)
+++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableFailureMechanismFactoryTest.cs (revision 0fd76a0bde626efdb5058ada2df39285ca4333cf)
@@ -0,0 +1,39 @@
+using System;
+using Core.Common.TestUtil;
+using NUnit.Framework;
+using Ringtoets.AssemblyTool.Data;
+using Ringtoets.Integration.IO.Assembly;
+using Ringtoets.Integration.IO.Factories;
+
+namespace Ringtoets.Integration.IO.Test.Factories
+{
+ [TestFixture]
+ public class ExportableFailureMechanismFactoryTest
+ {
+ [Test]
+ public void CreateDefaultExportableFailureMechanismWithProbability_Always_ReturnsExportableFailureMechanism()
+ {
+ // Setup
+ var random = new Random(21);
+ var group = random.NextEnumValue();
+ var failureMechanismCode = random.NextEnumValue();
+ var assemblyMethod = random.NextEnumValue();
+
+ // Call
+ ExportableFailureMechanism exportableFailureMechanism =
+ ExportableFailureMechanismFactory.CreateDefaultExportableFailureMechanismWithProbability(failureMechanismCode, @group, assemblyMethod);
+
+ // Assert
+ Assert.AreEqual(group, exportableFailureMechanism.Group);
+ Assert.AreEqual(failureMechanismCode, exportableFailureMechanism.Code);
+
+ ExportableFailureMechanismAssemblyResultWithProbability failureMechanismAssemblyResult = exportableFailureMechanism.FailureMechanismAssembly;
+ Assert.AreEqual(assemblyMethod, failureMechanismAssemblyResult.AssemblyMethod);
+ Assert.AreEqual(FailureMechanismAssemblyCategoryGroup.NotApplicable, failureMechanismAssemblyResult.AssemblyCategory);
+ Assert.AreEqual(0, failureMechanismAssemblyResult.Probability);
+
+ CollectionAssert.IsEmpty(exportableFailureMechanism.Sections);
+ CollectionAssert.IsEmpty(exportableFailureMechanism.SectionAssemblyResults);
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableMacroStabilityInwardsFailureMechanismFactoryTest.cs
===================================================================
diff -u -r478684f737e6b775dd6b38fa3d874ea7e6dc3585 -r0fd76a0bde626efdb5058ada2df39285ca4333cf
--- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableMacroStabilityInwardsFailureMechanismFactoryTest.cs (.../ExportableMacroStabilityInwardsFailureMechanismFactoryTest.cs) (revision 478684f737e6b775dd6b38fa3d874ea7e6dc3585)
+++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableMacroStabilityInwardsFailureMechanismFactoryTest.cs (.../ExportableMacroStabilityInwardsFailureMechanismFactoryTest.cs) (revision 0fd76a0bde626efdb5058ada2df39285ca4333cf)
@@ -53,10 +53,40 @@
}
[Test]
- public void CreateExportableMacroStabilityInwardsFailureMechanism_WithValidArguments_ReturnsExportableFailureMechanism()
+ public void CreateExportableMacroStabilityInwardsFailureMechanism_WithFailureMechanismNotRelevant_ReturnsDefaultExportableFailureMechanism()
{
// Setup
var random = new Random(21);
+ var failureMechanism = new MacroStabilityInwardsFailureMechanism
+ {
+ IsRelevant = false
+ };
+ FailureMechanismTestHelper.AddSections(failureMechanism, random.Next(2, 10));
+
+ var assessmentSection = new AssessmentSectionStub();
+
+ // Call
+ ExportableFailureMechanism exportableFailureMechanism =
+ ExportableMacroStabilityInwardsFailureMechanismFactory.CreateExportableMacroStabilityInwardsFailureMechanism(failureMechanism, assessmentSection);
+
+ // Assert
+ Assert.AreEqual(ExportableFailureMechanismType.STBI, exportableFailureMechanism.Code);
+ Assert.AreEqual(ExportableFailureMechanismGroup.Group2, exportableFailureMechanism.Group);
+
+ ExportableFailureMechanismAssemblyResultWithProbability failureMechanismAssemblyResult = exportableFailureMechanism.FailureMechanismAssembly;
+ Assert.AreEqual(ExportableAssemblyMethod.WBI1B1, failureMechanismAssemblyResult.AssemblyMethod);
+ Assert.AreEqual(FailureMechanismAssemblyCategoryGroup.NotApplicable, failureMechanismAssemblyResult.AssemblyCategory);
+ Assert.AreEqual(0, failureMechanismAssemblyResult.Probability);
+
+ CollectionAssert.IsEmpty(exportableFailureMechanism.Sections);
+ CollectionAssert.IsEmpty(exportableFailureMechanism.SectionAssemblyResults);
+ }
+
+ [Test]
+ public void CreateExportableMacroStabilityInwardsFailureMechanism_WithFailureMechanismRelevant_ReturnsExportableFailureMechanism()
+ {
+ // Setup
+ var random = new Random(21);
var failureMechanism = new MacroStabilityInwardsFailureMechanism();
FailureMechanismTestHelper.AddSections(failureMechanism, random.Next(2, 10));
@@ -69,22 +99,26 @@
FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator;
// Call
- ExportableFailureMechanism assemblyResult =
+ ExportableFailureMechanism exportableFailureMechanism =
ExportableMacroStabilityInwardsFailureMechanismFactory.CreateExportableMacroStabilityInwardsFailureMechanism(failureMechanism, assessmentSection);
// Assert
- Assert.AreEqual(failureMechanismAssemblyCalculator.FailureMechanismAssemblyOutput.Group, assemblyResult.FailureMechanismAssembly.AssemblyCategory);
- Assert.AreEqual(failureMechanismAssemblyCalculator.FailureMechanismAssemblyOutput.Probability, assemblyResult.FailureMechanismAssembly.Probability);
- Assert.AreEqual(ExportableFailureMechanismType.STBI, assemblyResult.Code);
- Assert.AreEqual(ExportableFailureMechanismGroup.Group2, assemblyResult.Group);
+ Assert.AreEqual(ExportableFailureMechanismType.STBI, exportableFailureMechanism.Code);
+ Assert.AreEqual(ExportableFailureMechanismGroup.Group2, exportableFailureMechanism.Group);
- ExportableFailureMechanismSectionTestHelper.AssertExportableFailureMechanismSections(failureMechanism.Sections, assemblyResult.Sections);
+ FailureMechanismAssembly calculatorOutput = failureMechanismAssemblyCalculator.FailureMechanismAssemblyOutput;
+ ExportableFailureMechanismAssemblyResultWithProbability exportableFailureMechanismAssembly = exportableFailureMechanism.FailureMechanismAssembly;
+ Assert.AreEqual(ExportableAssemblyMethod.WBI1B1, exportableFailureMechanismAssembly.AssemblyMethod);
+ Assert.AreEqual(calculatorOutput.Group, exportableFailureMechanismAssembly.AssemblyCategory);
+ Assert.AreEqual(calculatorOutput.Probability, exportableFailureMechanismAssembly.Probability);
+
+ ExportableFailureMechanismSectionTestHelper.AssertExportableFailureMechanismSections(failureMechanism.Sections, exportableFailureMechanism.Sections);
AssertExportableFailureMechanismSectionResults(failureMechanismSectionAssemblyCalculator.SimpleAssessmentAssemblyOutput,
failureMechanismSectionAssemblyCalculator.DetailedAssessmentAssemblyOutput,
failureMechanismSectionAssemblyCalculator.TailorMadeAssessmentAssemblyOutput,
failureMechanismSectionAssemblyCalculator.CombinedAssemblyOutput,
- assemblyResult.Sections,
- assemblyResult.SectionAssemblyResults.Cast());
+ exportableFailureMechanism.Sections,
+ exportableFailureMechanism.SectionAssemblyResults.Cast());
}
}
Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportablePipingFailureMechanismFactoryTest.cs
===================================================================
diff -u -r478684f737e6b775dd6b38fa3d874ea7e6dc3585 -r0fd76a0bde626efdb5058ada2df39285ca4333cf
--- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportablePipingFailureMechanismFactoryTest.cs (.../ExportablePipingFailureMechanismFactoryTest.cs) (revision 478684f737e6b775dd6b38fa3d874ea7e6dc3585)
+++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportablePipingFailureMechanismFactoryTest.cs (.../ExportablePipingFailureMechanismFactoryTest.cs) (revision 0fd76a0bde626efdb5058ada2df39285ca4333cf)
@@ -51,10 +51,40 @@
}
[Test]
- public void CreateExportablePipingFailureMechanism_WithValidArguments_ReturnsExportableFailureMechanism()
+ public void CreateExportablePipingFailureMechanism_WithFailureMechanismNotRelevant_ReturnsDefaultExportableFailureMechanism()
{
// Setup
var random = new Random(21);
+ var failureMechanism = new PipingFailureMechanism
+ {
+ IsRelevant = false
+ };
+ FailureMechanismTestHelper.AddSections(failureMechanism, random.Next(2, 10));
+
+ var assessmentSection = new AssessmentSectionStub();
+
+ // Call
+ ExportableFailureMechanism exportableFailureMechanism =
+ ExportablePipingFailureMechanismFactory.CreateExportablePipingFailureMechanism(failureMechanism, assessmentSection);
+
+ // Assert
+ Assert.AreEqual(ExportableFailureMechanismType.STPH, exportableFailureMechanism.Code);
+ Assert.AreEqual(ExportableFailureMechanismGroup.Group2, exportableFailureMechanism.Group);
+
+ ExportableFailureMechanismAssemblyResultWithProbability failureMechanismAssemblyResult = exportableFailureMechanism.FailureMechanismAssembly;
+ Assert.AreEqual(ExportableAssemblyMethod.WBI1B1, failureMechanismAssemblyResult.AssemblyMethod);
+ Assert.AreEqual(FailureMechanismAssemblyCategoryGroup.NotApplicable, failureMechanismAssemblyResult.AssemblyCategory);
+ Assert.AreEqual(0, failureMechanismAssemblyResult.Probability);
+
+ CollectionAssert.IsEmpty(exportableFailureMechanism.Sections);
+ CollectionAssert.IsEmpty(exportableFailureMechanism.SectionAssemblyResults);
+ }
+
+ [Test]
+ public void CreateExportablePipingFailureMechanism_WithFailureMechanismRelevant_ReturnsExportableFailureMechanism()
+ {
+ // Setup
+ var random = new Random(21);
var failureMechanism = new PipingFailureMechanism();
FailureMechanismTestHelper.AddSections(failureMechanism, random.Next(2, 10));
@@ -67,22 +97,26 @@
FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator;
// Call
- ExportableFailureMechanism assemblyResult =
+ ExportableFailureMechanism exportableFailureMechanism =
ExportablePipingFailureMechanismFactory.CreateExportablePipingFailureMechanism(failureMechanism, assessmentSection);
// Assert
- Assert.AreEqual(failureMechanismAssemblyCalculator.FailureMechanismAssemblyOutput.Group, assemblyResult.FailureMechanismAssembly.AssemblyCategory);
- Assert.AreEqual(failureMechanismAssemblyCalculator.FailureMechanismAssemblyOutput.Probability, assemblyResult.FailureMechanismAssembly.Probability);
- Assert.AreEqual(ExportableFailureMechanismType.STPH, assemblyResult.Code);
- Assert.AreEqual(ExportableFailureMechanismGroup.Group2, assemblyResult.Group);
+ Assert.AreEqual(ExportableFailureMechanismType.STPH, exportableFailureMechanism.Code);
+ Assert.AreEqual(ExportableFailureMechanismGroup.Group2, exportableFailureMechanism.Group);
- ExportableFailureMechanismSectionTestHelper.AssertExportableFailureMechanismSections(failureMechanism.Sections, assemblyResult.Sections);
+ FailureMechanismAssembly calculatorOutput = failureMechanismAssemblyCalculator.FailureMechanismAssemblyOutput;
+ ExportableFailureMechanismAssemblyResultWithProbability exportableFailureMechanismAssembly = exportableFailureMechanism.FailureMechanismAssembly;
+ Assert.AreEqual(calculatorOutput.Group, exportableFailureMechanismAssembly.AssemblyCategory);
+ Assert.AreEqual(calculatorOutput.Probability, exportableFailureMechanismAssembly.Probability);
+ Assert.AreEqual(ExportableAssemblyMethod.WBI1B1, exportableFailureMechanismAssembly.AssemblyMethod);
+
+ ExportableFailureMechanismSectionTestHelper.AssertExportableFailureMechanismSections(failureMechanism.Sections, exportableFailureMechanism.Sections);
AssertExportableFailureMechanismSectionResults(failureMechanismSectionAssemblyCalculator.SimpleAssessmentAssemblyOutput,
failureMechanismSectionAssemblyCalculator.DetailedAssessmentAssemblyOutput,
failureMechanismSectionAssemblyCalculator.TailorMadeAssessmentAssemblyOutput,
failureMechanismSectionAssemblyCalculator.CombinedAssemblyOutput,
- assemblyResult.Sections,
- assemblyResult.SectionAssemblyResults.Cast());
+ exportableFailureMechanism.Sections,
+ exportableFailureMechanism.SectionAssemblyResults.Cast());
}
}
Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Ringtoets.Integration.IO.Test.csproj
===================================================================
diff -u -rfe7f036a5bea0c75556c1f1f8d1d8c422acf5177 -r0fd76a0bde626efdb5058ada2df39285ca4333cf
--- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Ringtoets.Integration.IO.Test.csproj (.../Ringtoets.Integration.IO.Test.csproj) (revision fe7f036a5bea0c75556c1f1f8d1d8c422acf5177)
+++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Ringtoets.Integration.IO.Test.csproj (.../Ringtoets.Integration.IO.Test.csproj) (revision 0fd76a0bde626efdb5058ada2df39285ca4333cf)
@@ -39,6 +39,7 @@
+