Index: Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableFailureMechanismSections.cs
===================================================================
diff -u -rb0b566f39d1154e82c2cc098318ad18bf70342e8 -rc484779318d146c81093706412e60860ee423295
--- Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableFailureMechanismSections.cs (.../SerializableFailureMechanismSections.cs) (revision b0b566f39d1154e82c2cc098318ad18bf70342e8)
+++ Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableFailureMechanismSections.cs (.../SerializableFailureMechanismSections.cs) (revision c484779318d146c81093706412e60860ee423295)
@@ -43,19 +43,47 @@
/// Thrown when any parameter is null.
public SerializableFailureMechanismSections(string id,
SerializableFailureMechanism failureMechanism)
+ : this(id)
{
- if (id == null)
+ if (failureMechanism == null)
{
- throw new ArgumentNullException(nameof(id));
+ throw new ArgumentNullException(nameof(failureMechanism));
}
- if (failureMechanism == null)
+ FailureMechanismId = failureMechanism.Id;
+ }
+
+ ///
+ /// Creates a new instance of .
+ ///
+ /// The unique ID of the sections.
+ /// The total assembly result the sections belong to.
+ /// Thrown when any parameter is null.
+ public SerializableFailureMechanismSections(string id,
+ SerializableTotalAssemblyResult totalAssemblyResult)
+ : this(id)
+ {
+ if (totalAssemblyResult == null)
{
- throw new ArgumentNullException(nameof(failureMechanism));
+ throw new ArgumentNullException(nameof(totalAssemblyResult));
}
+ TotalAssemblyResultId = totalAssemblyResult.Id;
+ }
+
+ ///
+ /// Creates a new instance of .
+ ///
+ /// The unique ID of the sections.
+ /// Thrown when is null.
+ private SerializableFailureMechanismSections(string id)
+ {
+ if (id == null)
+ {
+ throw new ArgumentNullException(nameof(id));
+ }
+
Id = id;
- FailureMechanismId = failureMechanism.Id;
}
///
@@ -69,5 +97,11 @@
///
[XmlAttribute(AssemblyXmlIdentifiers.FailureMechanismIdRef)]
public string FailureMechanismId { get; set; }
+
+ ///
+ /// Gets or sets the ID of the parent total assembly result.
+ ///
+ [XmlAttribute(AssemblyXmlIdentifiers.TotalAssemblyResultIdRef)]
+ public string TotalAssemblyResultId { get; set; }
}
}
\ No newline at end of file
Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/SerializableAssemblyTest.cs
===================================================================
diff -u -r5e2248b589fcb4b39e7ff664cd11a200b08daa28 -rc484779318d146c81093706412e60860ee423295
--- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/SerializableAssemblyTest.cs (.../SerializableAssemblyTest.cs) (revision 5e2248b589fcb4b39e7ff664cd11a200b08daa28)
+++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/SerializableAssemblyTest.cs (.../SerializableAssemblyTest.cs) (revision c484779318d146c81093706412e60860ee423295)
@@ -237,7 +237,7 @@
},
new SerializableFailureMechanismSectionAssemblyResult(SerializableAssemblyMethod.WBI0A1, SerializableAssessmentLevel.CombinedAssessment, SerializableFailureMechanismSectionCategoryGroup.IIIv));
- var sections2 = new SerializableFailureMechanismSections("vakindeling_gecombineerd", failureMechanism1);
+ var sections2 = new SerializableFailureMechanismSections("vakindeling_gecombineerd", totalAssemblyResult);
var section2 = new SerializableFailureMechanismSection("vak_gecombineerd_1",
sections2,
0.12,
Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/SerializableFailureMechanismSectionsTest.cs
===================================================================
diff -u -rc37e7aa9fdd38a0476335e056b33c583486ed1af -rc484779318d146c81093706412e60860ee423295
--- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/SerializableFailureMechanismSectionsTest.cs (.../SerializableFailureMechanismSectionsTest.cs) (revision c37e7aa9fdd38a0476335e056b33c583486ed1af)
+++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/SerializableFailureMechanismSectionsTest.cs (.../SerializableFailureMechanismSectionsTest.cs) (revision c484779318d146c81093706412e60860ee423295)
@@ -42,15 +42,18 @@
Assert.IsInstanceOf(sections);
Assert.IsNull(sections.Id);
Assert.IsNull(sections.FailureMechanismId);
+ Assert.IsNull(sections.TotalAssemblyResultId);
SerializableAttributeTestHelper.AssertXmlAttributeAttribute(
nameof(SerializableFailureMechanismSections.Id), "VakindelingID");
SerializableAttributeTestHelper.AssertXmlAttributeAttribute(
nameof(SerializableFailureMechanismSections.FailureMechanismId), "ToetsspoorIDRef");
+ SerializableAttributeTestHelper.AssertXmlAttributeAttribute(
+ nameof(SerializableFailureMechanismSections.TotalAssemblyResultId), "VeiligheidsoordeelIDRef");
}
[Test]
- public void Constructor_IdNull_ThrowsArgumentNullException()
+ public void ConstructorWithFailureMechanism_IdNull_ThrowsArgumentNullException()
{
// Call
TestDelegate call = () => new SerializableFailureMechanismSections(null,
@@ -62,19 +65,19 @@
}
[Test]
- public void Constructor_FailureMechanismNull_ThrowsArgumentNullException()
+ public void ConstructorWithFailureMechanism_FailureMechanismNull_ThrowsArgumentNullException()
{
// Call
TestDelegate call = () => new SerializableFailureMechanismSections("id",
- null);
+ (SerializableFailureMechanism) null);
// Assert
var exception = Assert.Throws(call);
Assert.AreEqual("failureMechanism", exception.ParamName);
}
[Test]
- public void Constructor_WithValidData_ReturnsExpectedValues()
+ public void ConstructorWithFailureMechanism_WithValidData_ReturnsExpectedValues()
{
// Setup
const string id = "section id";
@@ -93,6 +96,53 @@
// Assert
Assert.AreEqual(id, sections.Id);
Assert.AreEqual(failureMechanism.Id, sections.FailureMechanismId);
+ Assert.IsNull(sections.TotalAssemblyResultId);
}
+
+ [Test]
+ public void ConstructorWithTotalAssemblyResult_IdNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate call = () => new SerializableFailureMechanismSections(null,
+ new SerializableTotalAssemblyResult());
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("id", exception.ParamName);
+ }
+
+ [Test]
+ public void ConstructorWithTotalAssemblyResult_FailureMechanismNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate call = () => new SerializableFailureMechanismSections("id",
+ (SerializableTotalAssemblyResult) null);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("totalAssemblyResult", exception.ParamName);
+ }
+
+ [Test]
+ public void ConstructorWithTotalAssemblyResult_WithValidData_ReturnsExpectedValues()
+ {
+ // Setup
+ const string id = "section id";
+
+ var totalAssemblyResult = new SerializableTotalAssemblyResult("result id",
+ new SerializableAssessmentProcess(),
+ new SerializableFailureMechanismAssemblyResult(),
+ new SerializableFailureMechanismAssemblyResult(),
+ new SerializableAssessmentSectionAssemblyResult());
+
+ // Call
+ var sections = new SerializableFailureMechanismSections(id,
+ totalAssemblyResult);
+
+ // Assert
+ Assert.AreEqual(id, sections.Id);
+ Assert.AreEqual(totalAssemblyResult.Id, sections.TotalAssemblyResultId);
+ Assert.IsNull(sections.FailureMechanismId);
+ }
}
}
\ No newline at end of file