Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableFailureMechanismFactory.cs
===================================================================
diff -u -r36cbe3953e6106ff92f09faa67b69ed8c666bd5e -re95af7d5b640887adf56f6bbd822d7d9341c49c2
--- Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableFailureMechanismFactory.cs (.../ExportableFailureMechanismFactory.cs) (revision 36cbe3953e6106ff92f09faa67b69ed8c666bd5e)
+++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableFailureMechanismFactory.cs (.../ExportableFailureMechanismFactory.cs) (revision e95af7d5b640887adf56f6bbd822d7d9341c49c2)
@@ -38,22 +38,22 @@
/// The assessment section the failure mechanism belongs to.
/// 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.
+ /// The assembly method which is used to obtain the general assembly result of the failure mechanism.
/// An with default values.
/// Thrown when is null.
public static ExportableFailureMechanism CreateDefaultExportableFailureMechanismWithProbability(
IAssessmentSection assessmentSection,
ExportableFailureMechanismType failureMechanismCode,
ExportableFailureMechanismGroup failureMechanismGroup,
- ExportableAssemblyMethod failureMechanismAssemblyMethod)
+ ExportableAssemblyMethod assemblyMethod)
{
if (assessmentSection == null)
{
throw new ArgumentNullException(nameof(assessmentSection));
}
return new ExportableFailureMechanism(
- new ExportableFailureMechanismAssemblyResultWithProbability(failureMechanismAssemblyMethod,
+ new ExportableFailureMechanismAssemblyResultWithProbability(assemblyMethod,
FailureMechanismAssemblyCategoryGroup.NotApplicable,
0),
new[]
@@ -71,18 +71,26 @@
/// Creates a default instance of an
/// without a probability based on its input parameters.
///
+ /// The assessment section the failure mechanism belongs to.
/// 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.
/// An with default values.
public static ExportableFailureMechanism CreateDefaultExportableFailureMechanismWithoutProbability(
+ IAssessmentSection assessmentSection,
ExportableFailureMechanismType failureMechanismCode,
ExportableFailureMechanismGroup failureMechanismGroup,
ExportableAssemblyMethod assemblyMethod)
{
return new ExportableFailureMechanism(
new ExportableFailureMechanismAssemblyResult(assemblyMethod,
FailureMechanismAssemblyCategoryGroup.NotApplicable),
+ new[]
+ {
+ new ExportableAggregatedFailureMechanismSectionAssemblyWithCombinedResult(CreateExportableFailureMechanismSection(assessmentSection.ReferenceLine),
+ new ExportableSectionAssemblyResult(ExportableAssemblyMethod.WBI0A1,
+ FailureMechanismSectionAssemblyCategoryGroup.NotApplicable))
+ },
failureMechanismCode,
failureMechanismGroup);
}
Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableFailureMechanismFactoryTest.cs
===================================================================
diff -u -r6016e12690fd7208602a3236b0b09550a57ceb8f -re95af7d5b640887adf56f6bbd822d7d9341c49c2
--- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableFailureMechanismFactoryTest.cs (.../ExportableFailureMechanismFactoryTest.cs) (revision 6016e12690fd7208602a3236b0b09550a57ceb8f)
+++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableFailureMechanismFactoryTest.cs (.../ExportableFailureMechanismFactoryTest.cs) (revision e95af7d5b640887adf56f6bbd822d7d9341c49c2)
@@ -58,15 +58,14 @@
public void CreateDefaultExportableFailureMechanismWithProbability_WithValidArguments_ReturnsExportableFailureMechanism()
{
// Setup
- var random = new Random(21);
-
var mocks = new MockRepository();
var assessmentSection = mocks.Stub();
mocks.ReplayAll();
ReferenceLine referenceLine = ReferenceLineTestFactory.CreateReferenceLineWithGeometry();
assessmentSection.ReferenceLine = referenceLine;
+ var random = new Random(21);
var group = random.NextEnumValue();
var failureMechanismCode = random.NextEnumValue();
var failureMechanismAssemblyMethod = random.NextEnumValue();
@@ -101,17 +100,46 @@
}
[Test]
- public void CreateDefaultExportableFailureMechanismWithoutProbability_Always_ReturnsExportableFailureMechanism()
+ public void CreateDefaultExportableFailureMechanismWithoutProbability_AssessmentSectionNull_ThrowsArgumentNullException()
{
+ var random = new Random(21);
+ var group = random.NextEnumValue();
+ var failureMechanismCode = random.NextEnumValue();
+ var failureMechanismAssemblyMethod = random.NextEnumValue();
+
+ // Call
+ TestDelegate call = () => ExportableFailureMechanismFactory.CreateDefaultExportableFailureMechanismWithoutProbability(null,
+ failureMechanismCode,
+ group,
+ failureMechanismAssemblyMethod);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("assessmentSection", exception.ParamName);
+ }
+
+ [Test]
+ public void CreateDefaultExportableFailureMechanismWithoutProbability_WithValidArguments_ReturnsExportableFailureMechanism()
+ {
// Setup
+ var mocks = new MockRepository();
+ var assessmentSection = mocks.Stub();
+ mocks.ReplayAll();
+
+ ReferenceLine referenceLine = ReferenceLineTestFactory.CreateReferenceLineWithGeometry();
+ assessmentSection.ReferenceLine = referenceLine;
+
var random = new Random(21);
var group = random.NextEnumValue();
var failureMechanismCode = random.NextEnumValue();
var assemblyMethod = random.NextEnumValue();
// Call
ExportableFailureMechanism exportableFailureMechanism =
- ExportableFailureMechanismFactory.CreateDefaultExportableFailureMechanismWithoutProbability(failureMechanismCode, group, assemblyMethod);
+ ExportableFailureMechanismFactory.CreateDefaultExportableFailureMechanismWithoutProbability(assessmentSection,
+ failureMechanismCode,
+ group,
+ assemblyMethod);
// Assert
Assert.AreEqual(group, exportableFailureMechanism.Group);
@@ -121,7 +149,16 @@
Assert.AreEqual(assemblyMethod, failureMechanismAssemblyResult.AssemblyMethod);
Assert.AreEqual(FailureMechanismAssemblyCategoryGroup.NotApplicable, failureMechanismAssemblyResult.AssemblyCategory);
- CollectionAssert.IsEmpty(exportableFailureMechanism.SectionAssemblyResults);
+ var exportableFailureMechanismSectionAssembly =
+ (ExportableAggregatedFailureMechanismSectionAssemblyWithCombinedResult) exportableFailureMechanism.SectionAssemblyResults.Single();
+ ExportableSectionAssemblyResult combinedAssembly = exportableFailureMechanismSectionAssembly.CombinedAssembly;
+ Assert.AreEqual(ExportableAssemblyMethod.WBI0A1, combinedAssembly.AssemblyMethod);
+ Assert.AreEqual(FailureMechanismSectionAssemblyCategoryGroup.NotApplicable, combinedAssembly.AssemblyCategory);
+
+ ExportableFailureMechanismSection failureMechanismSection = exportableFailureMechanismSectionAssembly.FailureMechanismSection;
+ Assert.AreSame(referenceLine.Points, failureMechanismSection.Geometry);
+ Assert.AreEqual(0, failureMechanismSection.StartDistance);
+ Assert.AreEqual(referenceLine.Length, failureMechanismSection.EndDistance);
}
}
}
\ No newline at end of file