Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Helpers/SerializableIdValidator.cs
===================================================================
diff -u -rfa3389c99cd0c94dfad0be6cb9c8a6a43df45e35 -r5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b
--- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Helpers/SerializableIdValidator.cs (.../SerializableIdValidator.cs) (revision fa3389c99cd0c94dfad0be6cb9c8a6a43df45e35)
+++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Helpers/SerializableIdValidator.cs (.../SerializableIdValidator.cs) (revision 5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b)
@@ -19,6 +19,7 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
using System.Text.RegularExpressions;
namespace Riskeer.AssemblyTool.IO.Model.Helpers
@@ -28,21 +29,19 @@
///
public static class SerializableIdValidator
{
+ private static readonly Regex regex = new Regex(@"^[A-Za-z\\_][A-Za-z\\_\d\-\.]+$");
+
///
- /// Validates whether is a valid id to be used
- /// as an identifier in an xml context.
+ /// Throws when is invalid for use as an identifier in an xml context.
///
/// The identifier to validate.
- /// true when is valid, false otherwise.
- public static bool Validate(string id)
+ /// Thrown when is invalid.
+ public static void ThrowIfInvalid(string id)
{
- if (string.IsNullOrWhiteSpace(id))
+ if (string.IsNullOrWhiteSpace(id) || !regex.IsMatch(id))
{
- return false;
+ throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'.");
}
-
- var regex = new Regex(@"^[A-Za-z\\_][A-Za-z\\_\d\-\.]+$");
- return regex.IsMatch(id);
}
}
}
\ No newline at end of file
Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssembly.cs
===================================================================
diff -u -rc902b44e0e5257db5527d8b3bdb836bfcc2ba7f8 -r5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b
--- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssembly.cs (.../SerializableAssembly.cs) (revision c902b44e0e5257db5527d8b3bdb836bfcc2ba7f8)
+++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssembly.cs (.../SerializableAssembly.cs) (revision 5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b)
@@ -73,10 +73,7 @@
IEnumerable failureMechanismSectionCollections,
IEnumerable failureMechanismSections)
{
- if (!SerializableIdValidator.Validate(id))
- {
- throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'.");
- }
+ SerializableIdValidator.ThrowIfInvalid(id);
if (lowerCorner == null)
{
Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssessmentProcess.cs
===================================================================
diff -u -rc902b44e0e5257db5527d8b3bdb836bfcc2ba7f8 -r5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b
--- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssessmentProcess.cs (.../SerializableAssessmentProcess.cs) (revision c902b44e0e5257db5527d8b3bdb836bfcc2ba7f8)
+++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssessmentProcess.cs (.../SerializableAssessmentProcess.cs) (revision 5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b)
@@ -50,10 +50,7 @@
public SerializableAssessmentProcess(string id,
SerializableAssessmentSection assessmentSection) : this()
{
- if (!SerializableIdValidator.Validate(id))
- {
- throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'.");
- }
+ SerializableIdValidator.ThrowIfInvalid(id);
if (assessmentSection == null)
{
Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssessmentSection.cs
===================================================================
diff -u -rc902b44e0e5257db5527d8b3bdb836bfcc2ba7f8 -r5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b
--- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssessmentSection.cs (.../SerializableAssessmentSection.cs) (revision c902b44e0e5257db5527d8b3bdb836bfcc2ba7f8)
+++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssessmentSection.cs (.../SerializableAssessmentSection.cs) (revision 5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b)
@@ -60,10 +60,7 @@
string name,
IEnumerable geometry) : this()
{
- if (!SerializableIdValidator.Validate(id))
- {
- throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'.");
- }
+ SerializableIdValidator.ThrowIfInvalid(id);
if (name == null)
{
Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableCombinedFailureMechanismSectionAssembly.cs
===================================================================
diff -u -rc902b44e0e5257db5527d8b3bdb836bfcc2ba7f8 -r5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b
--- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableCombinedFailureMechanismSectionAssembly.cs (.../SerializableCombinedFailureMechanismSectionAssembly.cs) (revision c902b44e0e5257db5527d8b3bdb836bfcc2ba7f8)
+++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableCombinedFailureMechanismSectionAssembly.cs (.../SerializableCombinedFailureMechanismSectionAssembly.cs) (revision 5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b)
@@ -54,10 +54,7 @@
SerializableFailureMechanismSectionAssemblyResult combinedSectionResult)
: this()
{
- if (!SerializableIdValidator.Validate(id))
- {
- throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'.");
- }
+ SerializableIdValidator.ThrowIfInvalid(id);
if (totalAssemblyResult == null)
{
Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanism.cs
===================================================================
diff -u -rc70b456800bddb4bb2952abeb592a3f4368490dd -r5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b
--- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanism.cs (.../SerializableFailureMechanism.cs) (revision c70b456800bddb4bb2952abeb592a3f4368490dd)
+++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanism.cs (.../SerializableFailureMechanism.cs) (revision 5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b)
@@ -54,10 +54,7 @@
SerializableFailureMechanismAssemblyResult failureMechanismAssemblyResult)
: this()
{
- if (!SerializableIdValidator.Validate(id))
- {
- throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'.");
- }
+ SerializableIdValidator.ThrowIfInvalid(id);
if (totalAssemblyResult == null)
{
Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSection.cs
===================================================================
diff -u -rc902b44e0e5257db5527d8b3bdb836bfcc2ba7f8 -r5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b
--- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSection.cs (.../SerializableFailureMechanismSection.cs) (revision c902b44e0e5257db5527d8b3bdb836bfcc2ba7f8)
+++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSection.cs (.../SerializableFailureMechanismSection.cs) (revision 5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b)
@@ -66,10 +66,7 @@
SerializableFailureMechanismSectionType sectionType,
SerializableAssemblyMethod? assemblyMethod = null)
{
- if (!SerializableIdValidator.Validate(id))
- {
- throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'.");
- }
+ SerializableIdValidator.ThrowIfInvalid(id);
if (failureMechanismSectionCollection == null)
{
Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSectionAssembly.cs
===================================================================
diff -u -r2e0c73beb0dd7c601db10219002a669f58232fed -r5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b
--- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSectionAssembly.cs (.../SerializableFailureMechanismSectionAssembly.cs) (revision 2e0c73beb0dd7c601db10219002a669f58232fed)
+++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSectionAssembly.cs (.../SerializableFailureMechanismSectionAssembly.cs) (revision 5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b)
@@ -52,10 +52,7 @@
SerializableFailureMechanismSectionAssemblyResult sectionResult)
: this()
{
- if (!SerializableIdValidator.Validate(id))
- {
- throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'.");
- }
+ SerializableIdValidator.ThrowIfInvalid(id);
if (failureMechanism == null)
{
Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSectionCollection.cs
===================================================================
diff -u -rc902b44e0e5257db5527d8b3bdb836bfcc2ba7f8 -r5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b
--- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSectionCollection.cs (.../SerializableFailureMechanismSectionCollection.cs) (revision c902b44e0e5257db5527d8b3bdb836bfcc2ba7f8)
+++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSectionCollection.cs (.../SerializableFailureMechanismSectionCollection.cs) (revision 5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b)
@@ -43,10 +43,7 @@
/// Thrown when is invalid.
public SerializableFailureMechanismSectionCollection(string id)
{
- if (!SerializableIdValidator.Validate(id))
- {
- throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'.");
- }
+ SerializableIdValidator.ThrowIfInvalid(id);
Id = id;
}
Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableTotalAssemblyResult.cs
===================================================================
diff -u -rc902b44e0e5257db5527d8b3bdb836bfcc2ba7f8 -r5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b
--- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableTotalAssemblyResult.cs (.../SerializableTotalAssemblyResult.cs) (revision c902b44e0e5257db5527d8b3bdb836bfcc2ba7f8)
+++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableTotalAssemblyResult.cs (.../SerializableTotalAssemblyResult.cs) (revision 5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b)
@@ -49,10 +49,7 @@
SerializableAssessmentProcess assessmentProcess,
SerializableAssessmentSectionAssemblyResult assessmentSectionAssemblyResult) : this()
{
- if (!SerializableIdValidator.Validate(id))
- {
- throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'.");
- }
+ SerializableIdValidator.ThrowIfInvalid(id);
if (assessmentProcess == null)
{
Index: Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.IO.Test/Model/Helpers/SerializableIdValidatorTest.cs
===================================================================
diff -u -rfa3389c99cd0c94dfad0be6cb9c8a6a43df45e35 -r5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b
--- Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.IO.Test/Model/Helpers/SerializableIdValidatorTest.cs (.../SerializableIdValidatorTest.cs) (revision fa3389c99cd0c94dfad0be6cb9c8a6a43df45e35)
+++ Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.IO.Test/Model/Helpers/SerializableIdValidatorTest.cs (.../SerializableIdValidatorTest.cs) (revision 5c5ccd7cfa27b2fa314f4fc00047e99fe199cb0b)
@@ -19,6 +19,8 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
+using Core.Common.TestUtil;
using NUnit.Framework;
using Riskeer.AssemblyTool.IO.Model.Helpers;
@@ -31,13 +33,10 @@
[TestCase("AValidId1-2.3")]
[TestCase("_AValidId1-2.3")]
[TestCase("aValidId1-2.3")]
- public void Validate_WithValidIds_ReturnsTrue(string validId)
+ public void ThrowIfInvalid_WithValidIds_DoesNotThrow(string validId)
{
- // Call
- bool result = SerializableIdValidator.Validate(validId);
-
- // Assert
- Assert.IsTrue(result);
+ // Call & Assert
+ SerializableIdValidator.ThrowIfInvalid(validId);
}
[Test]
@@ -56,13 +55,14 @@
[TestCase("")]
[TestCase(" ")]
[TestCase(null)]
- public void Validate_WithInvalidIds_ReturnsFalse(string invalidId)
+ public void Validate_WithInvalidIds_ThrowsArgumentException(string invalidId)
{
// Call
- bool result = SerializableIdValidator.Validate(invalidId);
+ void Call() => SerializableIdValidator.ThrowIfInvalid(invalidId);
// Assert
- Assert.IsFalse(result);
+ const string expectedMessage = "'id' must have a value and consist only of alphanumerical characters, '-', '_' or '.'.";
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(Call, expectedMessage);
}
}
}
\ No newline at end of file