Index: Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/AssemblyXmlIdentifiers.cs
===================================================================
diff -u -r5c59e60cae7bc68b321c0ee187a7d4dd9dd753b2 -r24154e2ef651d5deac25c6caf8f143d0348b29ff
--- Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/AssemblyXmlIdentifiers.cs (.../AssemblyXmlIdentifiers.cs) (revision 5c59e60cae7bc68b321c0ee187a7d4dd9dd753b2)
+++ Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/AssemblyXmlIdentifiers.cs (.../AssemblyXmlIdentifiers.cs) (revision 24154e2ef651d5deac25c6caf8f143d0348b29ff)
@@ -161,6 +161,11 @@
/// Identifier for a failure mechanism section element.
///
public const string FailureMechanismSection = "Waterkeringsectie";
+
+ ///
+ /// Identifier for a failure mechanism section ID reference attribute.
+ ///
+ public const string FailureMechanismSectionIdRef = "WaterkeringsectieIDRef";
///
/// Identifier for a failure mechanism section assembly element.
Index: Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableFailureMechanismSectionAssembly.cs
===================================================================
diff -u -rb50aa5c330d5c514ef0727cb9b732094c228eb46 -r24154e2ef651d5deac25c6caf8f143d0348b29ff
--- Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableFailureMechanismSectionAssembly.cs (.../SerializableFailureMechanismSectionAssembly.cs) (revision b50aa5c330d5c514ef0727cb9b732094c228eb46)
+++ Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableFailureMechanismSectionAssembly.cs (.../SerializableFailureMechanismSectionAssembly.cs) (revision 24154e2ef651d5deac25c6caf8f143d0348b29ff)
@@ -41,11 +41,13 @@
///
/// The unique ID of the assembly result.
/// The failure mechanism this assembly belongs to.
+ /// The section this assembly belongs to.
/// The collection of assembly results for this section assembly.
/// The combined assembly result for this section assembly.
/// Thrown when any parameter is null.
public SerializableFailureMechanismSectionAssembly(string id,
SerializableFailureMechanism failureMechanism,
+ SerializableFailureMechanismSection section,
SerializableFailureMechanismSectionAssemblyResult[] sectionResults,
SerializableFailureMechanismSectionAssemblyResult combinedSectionResult) : this()
{
@@ -59,6 +61,11 @@
throw new ArgumentNullException(nameof(failureMechanism));
}
+ if (section == null)
+ {
+ throw new ArgumentNullException(nameof(section));
+ }
+
if (sectionResults == null)
{
throw new ArgumentNullException(nameof(sectionResults));
@@ -71,6 +78,7 @@
Id = id;
FailureMechanismId = failureMechanism.Id;
+ FailureMechanismSectionId = section.Id;
SectionResults = sectionResults;
CombinedSectionResult = combinedSectionResult;
}
@@ -88,6 +96,12 @@
public string FailureMechanismId { get; set; }
///
+ /// Gets or sets the parent failure mechanism section ID.
+ ///
+ [XmlAttribute(AssemblyXmlIdentifiers.FailureMechanismSectionIdRef)]
+ public string FailureMechanismSectionId { get; set; }
+
+ ///
/// Gets or sets the combined assembly result.
///
[XmlElement(AssemblyXmlIdentifiers.CombinedSectionResult)]
Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/SerializableAssemblyTest.cs
===================================================================
diff -u -r5c59e60cae7bc68b321c0ee187a7d4dd9dd753b2 -r24154e2ef651d5deac25c6caf8f143d0348b29ff
--- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/SerializableAssemblyTest.cs (.../SerializableAssemblyTest.cs) (revision 5c59e60cae7bc68b321c0ee187a7d4dd9dd753b2)
+++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/SerializableAssemblyTest.cs (.../SerializableAssemblyTest.cs) (revision 24154e2ef651d5deac25c6caf8f143d0348b29ff)
@@ -226,6 +226,7 @@
var result1 = new SerializableFailureMechanismSectionAssembly("sr1",
failureMechanism1,
+ section1,
new[]
{
new SerializableFailureMechanismSectionAssemblyResult(SerializableAssemblyMethod.WBI0E1, SerializableAssessmentLevel.SimpleAssessment, SerializableFailureMechanismSectionCategoryGroup.IIv, 0.5),
Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/SerializableFailureMechanismSectionAssemblyTest.cs
===================================================================
diff -u -rb50aa5c330d5c514ef0727cb9b732094c228eb46 -r24154e2ef651d5deac25c6caf8f143d0348b29ff
--- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/SerializableFailureMechanismSectionAssemblyTest.cs (.../SerializableFailureMechanismSectionAssemblyTest.cs) (revision b50aa5c330d5c514ef0727cb9b732094c228eb46)
+++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/SerializableFailureMechanismSectionAssemblyTest.cs (.../SerializableFailureMechanismSectionAssemblyTest.cs) (revision 24154e2ef651d5deac25c6caf8f143d0348b29ff)
@@ -20,9 +20,13 @@
// All rights reserved.
using System;
+using System.Linq;
+using Core.Common.Base.Geometry;
+using Core.Common.TestUtil;
using NUnit.Framework;
using Ringtoets.AssemblyTool.IO.Model;
using Ringtoets.AssemblyTool.IO.Model.DataTypes;
+using Ringtoets.AssemblyTool.IO.Model.Enums;
using Ringtoets.AssemblyTool.IO.TestUtil;
namespace Ringtoets.AssemblyTool.IO.Test.Model
@@ -40,13 +44,16 @@
Assert.IsInstanceOf(sectionAssembly);
Assert.IsNull(sectionAssembly.Id);
Assert.IsNull(sectionAssembly.FailureMechanismId);
+ Assert.IsNull(sectionAssembly.FailureMechanismSectionId);
Assert.IsNull(sectionAssembly.CombinedSectionResult);
Assert.IsNull(sectionAssembly.SectionResults);
SerializableAttributeTestHelper.AssertXmlAttributeAttribute(
nameof(SerializableFailureMechanismSectionAssembly.Id), "ToetsID");
SerializableAttributeTestHelper.AssertXmlAttributeAttribute(
nameof(SerializableFailureMechanismSectionAssembly.FailureMechanismId), "ToetsspoorIDRef");
+ SerializableAttributeTestHelper.AssertXmlAttributeAttribute(
+ nameof(SerializableFailureMechanismSectionAssembly.FailureMechanismSectionId), "WaterkeringsectieIDRef");
SerializableAttributeTestHelper.AssertXmlElementAttribute(
nameof(SerializableFailureMechanismSectionAssembly.CombinedSectionResult), "eindtoetsoordeel");
@@ -60,6 +67,7 @@
// Call
TestDelegate call = () => new SerializableFailureMechanismSectionAssembly(null,
new SerializableFailureMechanism(),
+ new SerializableFailureMechanismSection(),
new SerializableFailureMechanismSectionAssemblyResult[0],
new SerializableFailureMechanismSectionAssemblyResult());
@@ -74,6 +82,7 @@
// Call
TestDelegate call = () => new SerializableFailureMechanismSectionAssembly("id",
null,
+ new SerializableFailureMechanismSection(),
new SerializableFailureMechanismSectionAssemblyResult[0],
new SerializableFailureMechanismSectionAssemblyResult());
@@ -83,11 +92,27 @@
}
[Test]
+ public void Constructor_SectionNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate call = () => new SerializableFailureMechanismSectionAssembly("id",
+ new SerializableFailureMechanism(),
+ null,
+ new SerializableFailureMechanismSectionAssemblyResult[0],
+ new SerializableFailureMechanismSectionAssemblyResult());
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("section", exception.ParamName);
+ }
+
+ [Test]
public void Constructor_SectionResultsNull_ThrowsArgumentNullException()
{
// Call
TestDelegate call = () => new SerializableFailureMechanismSectionAssembly("id",
new SerializableFailureMechanism(),
+ new SerializableFailureMechanismSection(),
null,
new SerializableFailureMechanismSectionAssemblyResult());
@@ -102,6 +127,7 @@
// Call
TestDelegate call = () => new SerializableFailureMechanismSectionAssembly("id",
new SerializableFailureMechanism(),
+ new SerializableFailureMechanismSection(),
new SerializableFailureMechanismSectionAssemblyResult[0],
null);
@@ -116,19 +142,31 @@
// Setup
const string id = "id";
- var failureMechanism = new SerializableFailureMechanism();
+ var random = new Random(39);
+ var failureMechanism = new SerializableFailureMechanism("failure mechanism ID",
+ new SerializableTotalAssemblyResult(),
+ random.NextEnumValue(),
+ random.NextEnumValue(),
+ new SerializableFailureMechanismAssemblyResult());
+ var section = new SerializableFailureMechanismSection("section ID",
+ new SerializableFailureMechanismSections(),
+ random.NextDouble(),
+ random.NextDouble(),
+ Enumerable.Empty());
var sectionResults = new SerializableFailureMechanismSectionAssemblyResult[0];
var combinedSectionResult = new SerializableFailureMechanismSectionAssemblyResult();
// Call
var sectionAssembly = new SerializableFailureMechanismSectionAssembly(id,
failureMechanism,
+ section,
sectionResults,
combinedSectionResult);
// Assert
Assert.AreEqual(id, sectionAssembly.Id);
Assert.AreEqual(failureMechanism.Id, sectionAssembly.FailureMechanismId);
+ Assert.AreEqual(section.Id, sectionAssembly.FailureMechanismSectionId);
Assert.AreSame(sectionResults, sectionAssembly.SectionResults);
Assert.AreSame(combinedSectionResult, sectionAssembly.CombinedSectionResult);
}