Index: Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableTotalAssemblyResult.cs
===================================================================
diff -u -rb47ce984073ce70ee97fac650ffb22e8a82fb4d4 -r9c2c56fafb538c2367a09f52ff602d2bfba82f70
--- Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableTotalAssemblyResult.cs (.../SerializableTotalAssemblyResult.cs) (revision b47ce984073ce70ee97fac650ffb22e8a82fb4d4)
+++ Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableTotalAssemblyResult.cs (.../SerializableTotalAssemblyResult.cs) (revision 9c2c56fafb538c2367a09f52ff602d2bfba82f70)
@@ -22,6 +22,7 @@
using System;
using System.Xml.Serialization;
using Ringtoets.AssemblyTool.IO.Model.DataTypes;
+using Ringtoets.AssemblyTool.IO.Model.Helpers;
namespace Ringtoets.AssemblyTool.IO.Model
{
@@ -44,19 +45,20 @@
/// The assembly result for failure mechanisms with a probability.
/// The assembly result for failure mechanisms without a probability.
/// The assembly result for the assessment section.
- /// Thrown when is null or empty.
- /// Thrown when any parameter except is null.
+ /// Thrown when any parameter is null.
+ /// Thrown when is invalid.
public SerializableTotalAssemblyResult(string id,
SerializableAssessmentProcess assessmentProcess,
SerializableFailureMechanismAssemblyResult assemblyResultWithoutProbability,
SerializableFailureMechanismAssemblyResult assemblyResultWithProbability,
SerializableAssessmentSectionAssemblyResult assessmentSectionAssemblyResult) : this()
{
- if (string.IsNullOrEmpty(id))
+ if (!IdValidator.Validate(id))
{
- throw new ArgumentException($@"'{nameof(id)}' must have a value.");
+ throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'.");
}
+
if (assessmentProcess == null)
{
throw new ArgumentNullException(nameof(assessmentProcess));
Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/SerializableTotalAssemblyResultTest.cs
===================================================================
diff -u -ra30b67748bed77736f62b6b3c30c82649bb9cf4e -r9c2c56fafb538c2367a09f52ff602d2bfba82f70
--- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/SerializableTotalAssemblyResultTest.cs (.../SerializableTotalAssemblyResultTest.cs) (revision a30b67748bed77736f62b6b3c30c82649bb9cf4e)
+++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.IO.Test/Model/SerializableTotalAssemblyResultTest.cs (.../SerializableTotalAssemblyResultTest.cs) (revision 9c2c56fafb538c2367a09f52ff602d2bfba82f70)
@@ -61,19 +61,35 @@
}
[Test]
- [TestCase(null)]
+ public void Constructor_IdNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate call = () => new SerializableTotalAssemblyResult(null,
+ new SerializableAssessmentProcess(),
+ new SerializableFailureMechanismAssemblyResult(),
+ new SerializableFailureMechanismAssemblyResult(),
+ new SerializableAssessmentSectionAssemblyResult());
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("id", exception.ParamName);
+ }
+
+ [Test]
+ [TestCase(" ")]
[TestCase("")]
- public void Constructor_IdInvalid_ThrowsArgumentException(string id)
+ [TestCase(" InvalidId")]
+ public void Constructor_InvalidId_ThrowsArgumentNullException(string invalidId)
{
// Call
- TestDelegate call = () => new SerializableTotalAssemblyResult(id,
+ TestDelegate call = () => new SerializableTotalAssemblyResult(invalidId,
new SerializableAssessmentProcess(),
new SerializableFailureMechanismAssemblyResult(),
new SerializableFailureMechanismAssemblyResult(),
new SerializableAssessmentSectionAssemblyResult());
// Assert
- const string expectedMessage = "'id' must have a value.";
+ const string expectedMessage = "'id' must have a value and consist only of alphanumerical characters, '-', '_' or '.'.";
TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage);
}
@@ -143,7 +159,7 @@
// Setup
const string id = "id";
- var assessmentProcess = new SerializableAssessmentProcess("process id",
+ var assessmentProcess = new SerializableAssessmentProcess("processId",
new SerializableAssessmentSection());
var resultWithoutProbability = new SerializableFailureMechanismAssemblyResult();
var resultWithProbability = new SerializableFailureMechanismAssemblyResult();