Index: Core/Common/test/Core.Common.TestUtils/TestHelper.cs
===================================================================
diff -u -ra85e384df91356b2c2716591531a863e01da876b -rf45d2d498e0354eb99e75191465d4cd5dc4dca13
--- Core/Common/test/Core.Common.TestUtils/TestHelper.cs (.../TestHelper.cs) (revision a85e384df91356b2c2716591531a863e01da876b)
+++ Core/Common/test/Core.Common.TestUtils/TestHelper.cs (.../TestHelper.cs) (revision f45d2d498e0354eb99e75191465d4cd5dc4dca13)
@@ -575,10 +575,7 @@
{
foreach (string message in messages)
{
- if (!renderedMessages.Contains(message))
- {
- Assert.Fail("Message \"{0}\" not found in messages of log4net", message);
- }
+ CollectionAssert.Contains(renderedMessages, message);
}
}
Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/FileReaderErrorMessageBuilder.cs
===================================================================
diff -u
--- Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/FileReaderErrorMessageBuilder.cs (revision 0)
+++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/FileReaderErrorMessageBuilder.cs (revision f45d2d498e0354eb99e75191465d4cd5dc4dca13)
@@ -0,0 +1,59 @@
+namespace Ringtoets.Piping.IO.Builders
+{
+ ///
+ /// Class to help create consistent file reader error messages.
+ ///
+ public class FileReaderErrorMessageBuilder
+ {
+ private readonly string filePath;
+ private string location;
+ private string subject;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The file path to the file where the error occurred.
+ public FileReaderErrorMessageBuilder(string filePath)
+ {
+ this.filePath = filePath;
+ }
+
+ ///
+ /// Builds the specified error message.
+ ///
+ /// The message about the error that has occurred.
+ /// The full error message.
+ public string Build(string errorMessage)
+ {
+ return string.Format("Fout bij het lezen van bestand '{0}'{1}{2}: {3}",
+ filePath,
+ location ?? string.Empty,
+ subject ?? string.Empty,
+ errorMessage);
+ }
+
+ ///
+ /// Adds file location information to the error message.
+ ///
+ /// The location description.
+ /// The builder being configured.
+ /// line 7
+ public FileReaderErrorMessageBuilder WithLocation(string locationDescription)
+ {
+ location = " " + locationDescription;
+ return this;
+ }
+
+ ///
+ /// Adds the subject where the error occurred to the error message.
+ ///
+ /// The subject description.
+ /// The builder being configured.
+ /// soil profile 'blabla'
+ public FileReaderErrorMessageBuilder WithSubject(string subjectDescription)
+ {
+ subject = string.Format(" ({0})", subjectDescription);
+ return this;
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/FileUtils.cs
===================================================================
diff -u -rc1e31ab57c197658d1c75750feef8856df7e9f6b -rf45d2d498e0354eb99e75191465d4cd5dc4dca13
--- Ringtoets/Piping/src/Ringtoets.Piping.IO/FileUtils.cs (.../FileUtils.cs) (revision c1e31ab57c197658d1c75750feef8856df7e9f6b)
+++ Ringtoets/Piping/src/Ringtoets.Piping.IO/FileUtils.cs (.../FileUtils.cs) (revision f45d2d498e0354eb99e75191465d4cd5dc4dca13)
@@ -1,6 +1,7 @@
using System;
using System.IO;
+using Ringtoets.Piping.IO.Builders;
using Ringtoets.Piping.IO.Properties;
namespace Ringtoets.Piping.IO
@@ -19,7 +20,8 @@
{
if (String.IsNullOrWhiteSpace(path))
{
- throw new ArgumentException(Resources.Error_Path_must_be_specified);
+ var message = new FileReaderErrorMessageBuilder(path).Build(Resources.Error_Path_must_be_specified);
+ throw new ArgumentException(message);
}
string name;
@@ -29,12 +31,15 @@
}
catch (ArgumentException e)
{
- throw new ArgumentException(String.Format(Resources.Error_Path_cannot_contain_Characters_0_,
- String.Join(", ", Path.GetInvalidFileNameChars())), e);
+ var message = new FileReaderErrorMessageBuilder(path)
+ .Build(String.Format(Resources.Error_Path_cannot_contain_Characters_0_,
+ String.Join(", ", Path.GetInvalidFileNameChars())));
+ throw new ArgumentException(message, e);
}
if (String.Empty == name)
{
- throw new ArgumentException(Resources.Error_Path_must_not_point_to_folder);
+ var message = new FileReaderErrorMessageBuilder(path).Build(Resources.Error_Path_must_not_point_to_folder);
+ throw new ArgumentException(message);
}
}
}
Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/PipingSurfaceLinesCsvReader.cs
===================================================================
diff -u -r458ef844024d216a682e09fe8193fd6188921bc2 -rf45d2d498e0354eb99e75191465d4cd5dc4dca13
--- Ringtoets/Piping/src/Ringtoets.Piping.IO/PipingSurfaceLinesCsvReader.cs (.../PipingSurfaceLinesCsvReader.cs) (revision 458ef844024d216a682e09fe8193fd6188921bc2)
+++ Ringtoets/Piping/src/Ringtoets.Piping.IO/PipingSurfaceLinesCsvReader.cs (.../PipingSurfaceLinesCsvReader.cs) (revision f45d2d498e0354eb99e75191465d4cd5dc4dca13)
@@ -5,7 +5,7 @@
using System.Linq;
using Ringtoets.Piping.Data;
-
+using Ringtoets.Piping.IO.Builders;
using Ringtoets.Piping.IO.Exceptions;
using Ringtoets.Piping.IO.Properties;
@@ -143,7 +143,7 @@
}
///
- /// Checks if the geometry dfining the surface line is valid.
+ /// Checks if the geometry defining the surface line is valid.
///
/// The surface line to be checked.
/// Surface line geometry is invalid
@@ -154,9 +154,7 @@
{
if (lCoordinates[i - 1] > lCoordinates[i])
{
- var message = string.Format(Resources.PipingSurfaceLinesCsvReader_ReadLine_SurfaceLineName_0_has_reclining_geometry,
- surfaceLine.Name);
- throw new LineParseException(message);
+ throw CreateLineParseException(lineNumber, surfaceLine.Name, Resources.PipingSurfaceLinesCsvReader_ReadLine_SurfaceLine_has_reclining_geometry);
}
}
}
@@ -180,9 +178,8 @@
{
if (!readText.Contains(separator))
{
- var message = string.Format(Resources.PipingSurfaceLinesCsvReader_ReadLine_File_Line_0_lacks_separator_1_,
- lineNumber, separator);
- throw new LineParseException(message);
+ throw CreateLineParseException(lineNumber, string.Format(Resources.PipingSurfaceLinesCsvReader_ReadLine_Line_lacks_separator_0_,
+ separator));
}
return readText.Split(separator)
.TakeWhile(text => !String.IsNullOrEmpty(text))
@@ -209,9 +206,7 @@
var worldCoordinateValues = ParseWorldCoordinateValuesAndHandleParseErrors(tokenizedString, surfaceLineName);
if (worldCoordinateValues.Length % expectedValuesForPoint != 0)
{
- var message = string.Format(Resources.PipingSurfaceLinesCsvReader_ReadLine_File_SurfaceLineName_0_lacks_values_for_coordinate_triplet,
- surfaceLineName);
- throw new LineParseException(message);
+ throw CreateLineParseException(lineNumber, surfaceLineName, Resources.PipingSurfaceLinesCsvReader_ReadLine_SurfaceLine_lacks_values_for_coordinate_triplet);
}
int coordinateCount = worldCoordinateValues.Length / expectedValuesForPoint;
@@ -239,9 +234,7 @@
var name = tokenizedString.Any() ? tokenizedString[0].Trim() : string.Empty;
if (string.IsNullOrEmpty(name))
{
- var message = string.Format(Resources.PipingSurfaceLinesCsvReader_ReadLine_File_Line_0_no_ID,
- lineNumber);
- throw new LineParseException(message);
+ throw CreateLineParseException(lineNumber, Resources.PipingSurfaceLinesCsvReader_ReadLine_Line_lacks_ID);
}
return name;
}
@@ -268,15 +261,11 @@
}
catch (FormatException e)
{
- var message = string.Format(Resources.Error_File_has_not_double_SurfaceLineName_0_,
- surfaceLineName);
- throw new LineParseException(message, e);
+ throw CreateLineParseException(lineNumber, surfaceLineName, Resources.Error_SurfaceLine_has_not_double, e);
}
catch (OverflowException e)
{
- var message = string.Format(Resources.Error_File_parsing_causes_overflow_SurfaceLineName_0_,
- surfaceLineName);
- throw new LineParseException(message, e);
+ throw CreateLineParseException(lineNumber, surfaceLineName, Resources.Error_SurfaceLine_parsing_causes_overflow, e);
}
}
@@ -295,15 +284,17 @@
}
catch (FileNotFoundException e)
{
- throw new CriticalFileReadException(Resources.Error_File_does_not_exist, e);
+ string message = new FileReaderErrorMessageBuilder(path).Build(Resources.Error_File_does_not_exist);
+ throw new CriticalFileReadException(message, e);
}
catch (DirectoryNotFoundException e)
{
- throw new CriticalFileReadException(Resources.Error_Directory_missing, e);
+ string message = new FileReaderErrorMessageBuilder(path).Build(Resources.Error_Directory_missing);
+ throw new CriticalFileReadException(message, e);
}
catch (IOException e)
{
- var message = string.Format(Resources.Error_General_IO_ErrorMessage_0_, e.Message);
+ var message = new FileReaderErrorMessageBuilder(path).Build(string.Format(Resources.Error_General_IO_ErrorMessage_0_, e.Message));
throw new CriticalFileReadException(message, e);
}
}
@@ -321,16 +312,63 @@
{
if (!IsHeaderValid(header))
{
- throw new CriticalFileReadException(Resources.PipingSurfaceLinesCsvReader_File_invalid_header);
+ throw CreateCriticalFileReadException(currentLine, Resources.PipingSurfaceLinesCsvReader_File_invalid_header);
}
}
else
{
- throw new CriticalFileReadException(Resources.Error_File_empty);
+ throw CreateCriticalFileReadException(currentLine, Resources.Error_File_empty);
}
}
///
+ /// Throws a configured instance of .
+ ///
+ /// The line number being read.
+ /// The critical error message.
+ /// Optional: exception that caused this exception to be thrown.
+ /// Calling this method causes this exception to be thrown.
+ private CriticalFileReadException CreateCriticalFileReadException(int currentLine, string criticalErrorMessage, Exception innerException = null)
+ {
+ string locationDescription = string.Format(Resources.TextFile_On_LineNumber_0_, currentLine);
+ var message = new FileReaderErrorMessageBuilder(filePath).WithLocation(locationDescription)
+ .Build(criticalErrorMessage);
+ return new CriticalFileReadException(message, innerException);
+ }
+
+ ///
+ /// Throws a configured instance of .
+ ///
+ /// The line number being read.
+ /// The critical error message.
+ /// Calling this method causes this exception to be thrown.
+ private LineParseException CreateLineParseException(int currentLine, string lineParseErrorMessage)
+ {
+ string locationDescription = string.Format(Resources.TextFile_On_LineNumber_0_, currentLine);
+ var message = new FileReaderErrorMessageBuilder(filePath).WithLocation(locationDescription)
+ .Build(lineParseErrorMessage);
+ return new LineParseException(message);
+ }
+
+ ///
+ /// Throws a configured instance of .
+ ///
+ /// The line number being read.
+ /// The name of the surfaceline being read.
+ /// The critical error message.
+ /// /// Optional: exception that caused this exception to be thrown.
+ /// Calling this method causes this exception to be thrown.
+ private LineParseException CreateLineParseException(int currentLine, string surfaceLineName, string lineParseErrorMessage, Exception innerException = null)
+ {
+ string locationDescription = string.Format(Resources.TextFile_On_LineNumber_0_, currentLine);
+ string subjectDescription = string.Format(Resources.PipingSurfaceLinesCsvReader_SurfaceLineName_0_, surfaceLineName);
+ var message = new FileReaderErrorMessageBuilder(filePath).WithLocation(locationDescription)
+ .WithSubject(subjectDescription)
+ .Build(lineParseErrorMessage);
+ return new LineParseException(message, innerException);
+ }
+
+ ///
/// Counts the remaining non-empty lines.
///
/// The reader at the row from which counting should start.
@@ -367,12 +405,11 @@
}
catch (OutOfMemoryException e)
{
- var message = string.Format(Resources.Error_File_contains_Line_0_too_big, currentLine);
- throw new CriticalFileReadException(message, e);
+ throw CreateCriticalFileReadException(currentLine, Resources.Error_File_does_not_exist, e);
}
catch (IOException e)
{
- var message = string.Format(Resources.Error_General_IO_ErrorMessage_0_, e.Message);
+ var message = new FileReaderErrorMessageBuilder(filePath).Build(string.Format(Resources.Error_General_IO_ErrorMessage_0_, e.Message));
throw new CriticalFileReadException(message, e);
}
}
Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.Designer.cs
===================================================================
diff -u -r458ef844024d216a682e09fe8193fd6188921bc2 -rf45d2d498e0354eb99e75191465d4cd5dc4dca13
--- Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 458ef844024d216a682e09fe8193fd6188921bc2)
+++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision f45d2d498e0354eb99e75191465d4cd5dc4dca13)
@@ -79,15 +79,6 @@
}
///
- /// Looks up a localized string similar to Het bestand heeft op regel {0} teveel tekst om in het RAM geheugen opgeslagen te worden..
- ///
- public static string Error_File_contains_Line_0_too_big {
- get {
- return ResourceManager.GetString("Error_File_contains_Line_0_too_big", resourceCulture);
- }
- }
-
- ///
/// Looks up a localized string similar to Het bestand bestaat niet..
///
public static string Error_File_does_not_exist {
@@ -106,33 +97,24 @@
}
///
- /// Looks up a localized string similar to Het bestand heeft voor profielmeting {0} een waarde die niet omgezet kan worden naar een getal..
+ /// Looks up a localized string similar to Er is een onverwachte fout opgetreden tijdens het inlezen van het bestand: {0}.
///
- public static string Error_File_has_not_double_SurfaceLineName_0_ {
+ public static string Error_General_IO_ErrorMessage_0_ {
get {
- return ResourceManager.GetString("Error_File_has_not_double_SurfaceLineName_0_", resourceCulture);
+ return ResourceManager.GetString("Error_General_IO_ErrorMessage_0_", resourceCulture);
}
}
///
- /// Looks up a localized string similar to Het bestand heeft voor profielmeting {0} een waarde die te groot of te klein is om ingelezen te worden..
+ /// Looks up a localized string similar to Regel bevat teveel tekst om in het RAM geheugen opgeslagen te worden..
///
- public static string Error_File_parsing_causes_overflow_SurfaceLineName_0_ {
+ public static string Error_Line_too_big_for_RAM {
get {
- return ResourceManager.GetString("Error_File_parsing_causes_overflow_SurfaceLineName_0_", resourceCulture);
+ return ResourceManager.GetString("Error_Line_too_big_for_RAM", resourceCulture);
}
}
///
- /// Looks up a localized string similar to Er is een onverwachte fout opgetreden tijdens het inlezen van het bestand: {0}.
- ///
- public static string Error_General_IO_ErrorMessage_0_ {
- get {
- return ResourceManager.GetString("Error_General_IO_ErrorMessage_0_", resourceCulture);
- }
- }
-
- ///
/// Looks up a localized string similar to Bestandspad mag niet de volgende tekens bevatten: {0}.
///
public static string Error_Path_cannot_contain_Characters_0_ {
@@ -179,6 +161,24 @@
}
///
+ /// Looks up a localized string similar to Profielmeting heeft een waarde die niet omgezet kan worden naar een getal..
+ ///
+ public static string Error_SurfaceLine_has_not_double {
+ get {
+ return ResourceManager.GetString("Error_SurfaceLine_has_not_double", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Profielmeting heeft een waarde die te groot of te klein is om ingelezen te worden..
+ ///
+ public static string Error_SurfaceLine_parsing_causes_overflow {
+ get {
+ return ResourceManager.GetString("Error_SurfaceLine_parsing_causes_overflow", resourceCulture);
+ }
+ }
+
+ ///
/// Looks up a localized string similar to Kan de geometrie van laag nummer '{0}' in profiel '{1}' niet interpreteren..
///
public static string PipingSoilProfileReader_CouldNotParseGeometryOfLayer_0_InProfile_1_ {
@@ -224,43 +224,52 @@
}
///
- /// Looks up a localized string similar to Het bestand heeft op regel {0} geen verwacht scheidingsteken (het karakter: {1})..
+ /// Looks up a localized string similar to Regel heeft geen ID..
///
- public static string PipingSurfaceLinesCsvReader_ReadLine_File_Line_0_lacks_separator_1_ {
+ public static string PipingSurfaceLinesCsvReader_ReadLine_Line_lacks_ID {
get {
- return ResourceManager.GetString("PipingSurfaceLinesCsvReader_ReadLine_File_Line_0_lacks_separator_1_", resourceCulture);
+ return ResourceManager.GetString("PipingSurfaceLinesCsvReader_ReadLine_Line_lacks_ID", resourceCulture);
}
}
///
- /// Looks up a localized string similar to Het bestand heeft geen ID op regel {0}..
+ /// Looks up a localized string similar to Regel ontbreekt het verwachte scheidingsteken (het karakter: {0})..
///
- public static string PipingSurfaceLinesCsvReader_ReadLine_File_Line_0_no_ID {
+ public static string PipingSurfaceLinesCsvReader_ReadLine_Line_lacks_separator_0_ {
get {
- return ResourceManager.GetString("PipingSurfaceLinesCsvReader_ReadLine_File_Line_0_no_ID", resourceCulture);
+ return ResourceManager.GetString("PipingSurfaceLinesCsvReader_ReadLine_Line_lacks_separator_0_", resourceCulture);
}
}
///
- /// Looks up a localized string similar to In het bestand voor profielmeting {0} ontbreken er waardes om een 3D (X,Y,Z) punt aan te maken..
+ /// Looks up a localized string similar to Profielmeting heeft een teruglopende geometrie (Punten behoren een oplopende set L-coordinaten te hebben in het lokaal coördinatenstelsel)..
///
- public static string PipingSurfaceLinesCsvReader_ReadLine_File_SurfaceLineName_0_lacks_values_for_coordinate_triplet {
+ public static string PipingSurfaceLinesCsvReader_ReadLine_SurfaceLine_has_reclining_geometry {
get {
- return ResourceManager.GetString("PipingSurfaceLinesCsvReader_ReadLine_File_SurfaceLineName_0_lacks_values_for_coor" +
- "dinate_triplet", resourceCulture);
+ return ResourceManager.GetString("PipingSurfaceLinesCsvReader_ReadLine_SurfaceLine_has_reclining_geometry", resourceCulture);
}
}
///
- /// Looks up a localized string similar to Profielmeting {0} van bestand heeft een teruglopende geometrie (Punten behoren een oplopende set L-coordinaten te hebben in het lokaal coördinatenstelsel)..
+ /// Looks up a localized string similar to Voor profielmeting ontbreken er waardes om een 3D (X,Y,Z) punt aan te maken..
///
- public static string PipingSurfaceLinesCsvReader_ReadLine_SurfaceLineName_0_has_reclining_geometry {
+ public static string PipingSurfaceLinesCsvReader_ReadLine_SurfaceLine_lacks_values_for_coordinate_triplet {
get {
- return ResourceManager.GetString("PipingSurfaceLinesCsvReader_ReadLine_SurfaceLineName_0_has_reclining_geometry", resourceCulture);
+ return ResourceManager.GetString("PipingSurfaceLinesCsvReader_ReadLine_SurfaceLine_lacks_values_for_coordinate_trip" +
+ "let", resourceCulture);
}
}
///
+ /// Looks up a localized string similar to profielmeting '{0}'.
+ ///
+ public static string PipingSurfaceLinesCsvReader_SurfaceLineName_0_ {
+ get {
+ return ResourceManager.GetString("PipingSurfaceLinesCsvReader_SurfaceLineName_0_", resourceCulture);
+ }
+ }
+
+ ///
/// Looks up a localized string similar to De segmenten van de geometrie van de laag vormen geen lus..
///
public static string SoilLayer2D_Error_Loop_contains_disconnected_segments {
@@ -295,5 +304,14 @@
return ResourceManager.GetString("SoilLayer2DReader_Geometry_is_null", resourceCulture);
}
}
+
+ ///
+ /// Looks up a localized string similar to op regel {0}.
+ ///
+ public static string TextFile_On_LineNumber_0_ {
+ get {
+ return ResourceManager.GetString("TextFile_On_LineNumber_0_", resourceCulture);
+ }
+ }
}
}
Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.resx
===================================================================
diff -u -r458ef844024d216a682e09fe8193fd6188921bc2 -rf45d2d498e0354eb99e75191465d4cd5dc4dca13
--- Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.resx (.../Resources.resx) (revision 458ef844024d216a682e09fe8193fd6188921bc2)
+++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.resx (.../Resources.resx) (revision f45d2d498e0354eb99e75191465d4cd5dc4dca13)
@@ -123,20 +123,20 @@
Het bestandspad verwijst naar een map die niet bestaat.
-
- Het bestand heeft op regel {0} teveel tekst om in het RAM geheugen opgeslagen te worden.
+
+ Regel bevat teveel tekst om in het RAM geheugen opgeslagen te worden.Het bestand bestaat niet.Het bestand is leeg.
-
- Het bestand heeft voor profielmeting {0} een waarde die niet omgezet kan worden naar een getal.
+
+ Profielmeting heeft een waarde die niet omgezet kan worden naar een getal.
-
- Het bestand heeft voor profielmeting {0} een waarde die te groot of te klein is om ingelezen te worden.
+
+ Profielmeting heeft een waarde die te groot of te klein is om ingelezen te worden.Er is een onverwachte fout opgetreden tijdens het inlezen van het bestand: {0}
@@ -162,17 +162,17 @@
Het bestand is niet geschikt om profielmetingen uit te lezen (Verwachte header: locationid;X1;Y1;Z1).
-
- Profielmeting {0} van bestand heeft een teruglopende geometrie (Punten behoren een oplopende set L-coordinaten te hebben in het lokaal coördinatenstelsel).
+
+ Profielmeting heeft een teruglopende geometrie (Punten behoren een oplopende set L-coordinaten te hebben in het lokaal coördinatenstelsel).
-
- Het bestand heeft op regel {0} geen verwacht scheidingsteken (het karakter: {1}).
+
+ Regel ontbreekt het verwachte scheidingsteken (het karakter: {0}).
-
- In het bestand voor profielmeting {0} ontbreken er waardes om een 3D (X,Y,Z) punt aan te maken.
+
+ Voor profielmeting ontbreken er waardes om een 3D (X,Y,Z) punt aan te maken.
-
- Het bestand heeft geen ID op regel {0}.
+
+ Regel heeft geen ID.Kan de geometrie van laag nummer '{0}' in profiel '{1}' niet interpreteren.
@@ -195,4 +195,10 @@
Coördinaat van een punt bevat ongeldige waarde.
+
+ op regel {0}
+
+
+ profielmeting '{0}'
+
\ No newline at end of file
Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Ringtoets.Piping.IO.csproj
===================================================================
diff -u -r2afad189e942019ef3da47d72e134f3a4c6c7884 -rf45d2d498e0354eb99e75191465d4cd5dc4dca13
--- Ringtoets/Piping/src/Ringtoets.Piping.IO/Ringtoets.Piping.IO.csproj (.../Ringtoets.Piping.IO.csproj) (revision 2afad189e942019ef3da47d72e134f3a4c6c7884)
+++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Ringtoets.Piping.IO.csproj (.../Ringtoets.Piping.IO.csproj) (revision f45d2d498e0354eb99e75191465d4cd5dc4dca13)
@@ -50,6 +50,7 @@
Properties\GlobalAssembly.cs
+
Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Builders/FileReaderErrorMessageBuilderTest.cs
===================================================================
diff -u
--- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Builders/FileReaderErrorMessageBuilderTest.cs (revision 0)
+++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Builders/FileReaderErrorMessageBuilderTest.cs (revision f45d2d498e0354eb99e75191465d4cd5dc4dca13)
@@ -0,0 +1,78 @@
+using NUnit.Framework;
+
+using Ringtoets.Piping.IO.Builders;
+
+namespace Ringtoets.Piping.IO.Test.Builders
+{
+ [TestFixture]
+ public class FileReaderErrorMessageBuilderTest
+ {
+ [Test]
+ public void Build_BasedOnPathAndMessage_ReturnBuiltErrorMessage()
+ {
+ // Setup
+ const string filePath = "";
+ const string errorMessage = "test test 1,2,3";
+
+ // Call
+ var message = new FileReaderErrorMessageBuilder(filePath).Build(errorMessage);
+
+ // Assert
+ var expectedMessage = string.Format("Fout bij het lezen van bestand '{0}': {1}",
+ filePath, errorMessage);
+ Assert.AreEqual(expectedMessage, message);
+ }
+
+ [Test]
+ public void Build_BasedOnPathAndMessageWithLocation_ReturnBuiltErrorMessage()
+ {
+ // Setup
+ const string filePath = "";
+ const string errorMessage = "test test 1,2,3";
+ const string location = "";
+
+ // Call
+ var message = new FileReaderErrorMessageBuilder(filePath).WithLocation(location).Build(errorMessage);
+
+ // Assert
+ var expectedMessage = string.Format("Fout bij het lezen van bestand '{0}' {1}: {2}",
+ filePath, location, errorMessage);
+ Assert.AreEqual(expectedMessage, message);
+ }
+
+ [Test]
+ public void Build_BasedOnPathAndMessageWithSubject_ReturnBuiltErrorMessage()
+ {
+ // Setup
+ const string filePath = "";
+ const string errorMessage = "test test 1,2,3";
+ const string subject = "";
+
+ // Call
+ var message = new FileReaderErrorMessageBuilder(filePath).WithSubject(subject).Build(errorMessage);
+
+ // Assert
+ var expectedMessage = string.Format("Fout bij het lezen van bestand '{0}' ({1}): {2}",
+ filePath, subject, errorMessage);
+ Assert.AreEqual(expectedMessage, message);
+ }
+
+ [Test]
+ public void Build_BasedOnPathAndMessageWithSubjectAndLocation_ReturnBuiltErrorMessage()
+ {
+ // Setup
+ const string filePath = "";
+ const string errorMessage = "test test 1,2,3";
+ const string subject = "";
+ const string location = "";
+
+ // Call
+ var message = new FileReaderErrorMessageBuilder(filePath).WithSubject(subject).WithLocation(location).Build(errorMessage);
+
+ // Assert
+ var expectedMessage = string.Format("Fout bij het lezen van bestand '{0}' {1} ({2}): {3}",
+ filePath, location, subject, errorMessage);
+ Assert.AreEqual(expectedMessage, message);
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/FileUtilsTest.cs
===================================================================
diff -u -r5462a7ee52b9491f269d489a094d359f4f02f270 -rf45d2d498e0354eb99e75191465d4cd5dc4dca13
--- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/FileUtilsTest.cs (.../FileUtilsTest.cs) (revision 5462a7ee52b9491f269d489a094d359f4f02f270)
+++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/FileUtilsTest.cs (.../FileUtilsTest.cs) (revision f45d2d498e0354eb99e75191465d4cd5dc4dca13)
@@ -34,7 +34,8 @@
// Assert
var exception = Assert.Throws(call);
- Assert.AreEqual("Bestandspad mag niet leeg of ongedefinieerd zijn.", exception.Message);
+ var expectedMessage = string.Format("Fout bij het lezen van bestand '{0}': Bestandspad mag niet leeg of ongedefinieerd zijn.", invalidPath);
+ Assert.AreEqual(expectedMessage, exception.Message);
}
[Test]
@@ -50,8 +51,8 @@
// Assert
var exception = Assert.Throws(call);
- var expectedMessage = String.Format("Bestandspad mag niet de volgende tekens bevatten: {0}",
- string.Join(", ", invalidFileNameChars));
+ var expectedMessage = String.Format("Fout bij het lezen van bestand '{0}': Bestandspad mag niet de volgende tekens bevatten: {1}",
+ invalidPath, string.Join(", ", invalidFileNameChars));
Assert.AreEqual(expectedMessage, exception.Message);
}
@@ -66,7 +67,8 @@
// Assert
var exception = Assert.Throws(call);
- Assert.AreEqual("Bestandspad mag niet naar een map verwijzen.", exception.Message);
+ var expectedMessage = String.Format("Fout bij het lezen van bestand '{0}': Bestandspad mag niet naar een map verwijzen.", folderPath);
+ Assert.AreEqual(expectedMessage, exception.Message);
}
}
}
\ No newline at end of file
Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/PipingSurfaceLinesCsvReaderTest.cs
===================================================================
diff -u -r458ef844024d216a682e09fe8193fd6188921bc2 -rf45d2d498e0354eb99e75191465d4cd5dc4dca13
--- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/PipingSurfaceLinesCsvReaderTest.cs (.../PipingSurfaceLinesCsvReaderTest.cs) (revision 458ef844024d216a682e09fe8193fd6188921bc2)
+++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/PipingSurfaceLinesCsvReaderTest.cs (.../PipingSurfaceLinesCsvReaderTest.cs) (revision f45d2d498e0354eb99e75191465d4cd5dc4dca13)
@@ -6,6 +6,7 @@
using NUnit.Framework;
+using Ringtoets.Piping.IO.Builders;
using Ringtoets.Piping.IO.Exceptions;
using Ringtoets.Piping.IO.Test.TestHelpers;
@@ -29,7 +30,8 @@
// Assert
var exception = Assert.Throws(call);
- Assert.AreEqual(IOResources.Error_Path_must_be_specified, exception.Message);
+ var expectedMessage = new FileReaderErrorMessageBuilder(path).Build(IOResources.Error_Path_must_be_specified);
+ Assert.AreEqual(expectedMessage, exception.Message);
}
[Test]
@@ -47,8 +49,8 @@
// Assert
var exception = Assert.Throws(call);
- var expectedMessage = String.Format(IOResources.Error_Path_cannot_contain_Characters_0_,
- String.Join(", ", Path.GetInvalidFileNameChars()));
+ var expectedMessage = new FileReaderErrorMessageBuilder(corruptPath).Build(String.Format(IOResources.Error_Path_cannot_contain_Characters_0_,
+ String.Join(", ", Path.GetInvalidFileNameChars())));
Assert.AreEqual(expectedMessage, exception.Message);
}
@@ -60,7 +62,8 @@
// Assert
var exception = Assert.Throws(call);
- Assert.AreEqual(IOResources.Error_Path_must_not_point_to_folder, exception.Message);
+ var expectedMessage = new FileReaderErrorMessageBuilder(testDataPath).Build(IOResources.Error_Path_must_not_point_to_folder);
+ Assert.AreEqual(expectedMessage, exception.Message);
}
[Test]
@@ -125,7 +128,8 @@
// Assert
var exception = Assert.Throws(call);
- Assert.AreEqual(IOResources.Error_File_does_not_exist, exception.Message);
+ var expectedError = new FileReaderErrorMessageBuilder(path).Build(IOResources.Error_File_does_not_exist);
+ Assert.AreEqual(expectedError, exception.Message);
Assert.IsInstanceOf(exception.InnerException);
}
}
@@ -146,7 +150,8 @@
// Assert
var exception = Assert.Throws(call);
- Assert.AreEqual(IOResources.Error_Directory_missing, exception.Message);
+ var expectedMessage = new FileReaderErrorMessageBuilder(path).Build(IOResources.Error_Directory_missing);
+ Assert.AreEqual(expectedMessage, exception.Message);
Assert.IsInstanceOf(exception.InnerException);
}
}
@@ -167,7 +172,8 @@
// Assert
var exception = Assert.Throws(call);
- Assert.AreEqual(IOResources.Error_File_empty, exception.Message);
+ var expectedMessage = new FileReaderErrorMessageBuilder(path).WithLocation("op regel 1").Build(IOResources.Error_File_empty);
+ Assert.AreEqual(expectedMessage, exception.Message);
}
}
@@ -187,7 +193,8 @@
// Assert
var exception = Assert.Throws(call);
- Assert.AreEqual(IOResources.PipingSurfaceLinesCsvReader_File_invalid_header, exception.Message);
+ var expectedMessage = new FileReaderErrorMessageBuilder(path).WithLocation("op regel 1").Build(IOResources.PipingSurfaceLinesCsvReader_File_invalid_header);
+ Assert.AreEqual(expectedMessage, exception.Message);
}
}
@@ -211,7 +218,7 @@
// Assert
var exception = Assert.Throws(call);
- var expectedMessage = string.Format("Het bestand is niet geschikt om profielmetingen uit te lezen (Verwachte header: locationid;X1;Y1;Z1).", path);
+ var expectedMessage = new FileReaderErrorMessageBuilder(path).WithLocation("op regel 1").Build("Het bestand is niet geschikt om profielmetingen uit te lezen (Verwachte header: locationid;X1;Y1;Z1).");
Assert.AreEqual(expectedMessage, exception.Message);
}
}
@@ -299,7 +306,8 @@
// Assert
var exception = Assert.Throws(call);
- Assert.AreEqual(IOResources.Error_File_does_not_exist, exception.Message);
+ var expectedMessage = new FileReaderErrorMessageBuilder(path).Build(IOResources.Error_File_does_not_exist);
+ Assert.AreEqual(expectedMessage, exception.Message);
Assert.IsInstanceOf(exception.InnerException);
}
}
@@ -320,7 +328,8 @@
// Assert
var exception = Assert.Throws(call);
- Assert.AreEqual(IOResources.Error_Directory_missing, exception.Message);
+ var expectedMessage = new FileReaderErrorMessageBuilder(path).Build(IOResources.Error_Directory_missing);
+ Assert.AreEqual(expectedMessage, exception.Message);
Assert.IsInstanceOf(exception.InnerException);
}
}
@@ -341,7 +350,8 @@
// Assert
var exception = Assert.Throws(call);
- Assert.AreEqual(IOResources.Error_File_empty, exception.Message);
+ var expectedMessage = new FileReaderErrorMessageBuilder(path).WithLocation("op regel 1").Build(IOResources.Error_File_empty);
+ Assert.AreEqual(expectedMessage, exception.Message);
}
}
@@ -361,7 +371,8 @@
// Assert
var exception = Assert.Throws(call);
- Assert.AreEqual(IOResources.PipingSurfaceLinesCsvReader_File_invalid_header, exception.Message);
+ var expectedMessage = new FileReaderErrorMessageBuilder(path).WithLocation("op regel 1").Build(IOResources.PipingSurfaceLinesCsvReader_File_invalid_header);
+ Assert.AreEqual(expectedMessage, exception.Message);
}
}
@@ -385,7 +396,9 @@
// Assert
var exception = Assert.Throws(call);
- var expectedMessage = string.Format("Het bestand is niet geschikt om profielmetingen uit te lezen (Verwachte header: locationid;X1;Y1;Z1).", path);
+ var expectedMessage = new FileReaderErrorMessageBuilder(path)
+ .WithLocation("op regel 1")
+ .Build("Het bestand is niet geschikt om profielmetingen uit te lezen (Verwachte header: locationid;X1;Y1;Z1).");
Assert.AreEqual(expectedMessage, exception.Message);
}
}
@@ -409,7 +422,10 @@
// Assert
var exception = Assert.Throws(call);
- var expectedMessage = string.Format(IOResources.Error_File_has_not_double_SurfaceLineName_0_, "InvalidSurfaceLine");
+ var expectedMessage = new FileReaderErrorMessageBuilder(path)
+ .WithLocation("op regel 2")
+ .WithSubject("profielmeting 'InvalidSurfaceLine'")
+ .Build(IOResources.Error_SurfaceLine_has_not_double);
Assert.AreEqual(expectedMessage, exception.Message);
Assert.IsInstanceOf(exception.InnerException);
}
@@ -437,7 +453,10 @@
// Assert
var exception = Assert.Throws(call);
- var expectedMessage = string.Format(IOResources.Error_File_parsing_causes_overflow_SurfaceLineName_0_, "InvalidSurfaceLine");
+ var expectedMessage = new FileReaderErrorMessageBuilder(path)
+ .WithLocation("op regel 2")
+ .WithSubject("profielmeting 'InvalidSurfaceLine'")
+ .Build(IOResources.Error_SurfaceLine_parsing_causes_overflow);
Assert.AreEqual(expectedMessage, exception.Message);
Assert.IsInstanceOf(exception.InnerException);
}
@@ -460,11 +479,11 @@
// Assert
// 1st line has no text at all:
var exception = Assert.Throws(call);
- var expectedMessage = string.Format(IOResources.PipingSurfaceLinesCsvReader_ReadLine_File_Line_0_no_ID, 2);
+ var expectedMessage = new FileReaderErrorMessageBuilder(path).WithLocation("op regel 2").Build(IOResources.PipingSurfaceLinesCsvReader_ReadLine_Line_lacks_ID);
Assert.AreEqual(expectedMessage, exception.Message);
// 2nd line has only whitespace text:
- expectedMessage = string.Format(IOResources.PipingSurfaceLinesCsvReader_ReadLine_File_Line_0_no_ID, 3);
+ expectedMessage = new FileReaderErrorMessageBuilder(path).WithLocation("op regel 3").Build(IOResources.PipingSurfaceLinesCsvReader_ReadLine_Line_lacks_ID);
exception = Assert.Throws(call);
Assert.AreEqual(expectedMessage, exception.Message);
}
@@ -486,7 +505,7 @@
// Assert
var exception = Assert.Throws(call);
- var expectedMessage = string.Format(IOResources.PipingSurfaceLinesCsvReader_ReadLine_File_Line_0_lacks_separator_1_, 2, ';');
+ var expectedMessage = new FileReaderErrorMessageBuilder(path).WithLocation("op regel 2").Build(string.Format(IOResources.PipingSurfaceLinesCsvReader_ReadLine_Line_lacks_separator_0_, ';'));
Assert.AreEqual(expectedMessage, exception.Message);
}
}
@@ -507,7 +526,9 @@
// Assert
var exception = Assert.Throws(call);
- var expectedMessage = string.Format(IOResources.PipingSurfaceLinesCsvReader_ReadLine_File_Line_0_lacks_separator_1_, 2, ';');
+ var expectedMessage = new FileReaderErrorMessageBuilder(path)
+ .WithLocation("op regel 2")
+ .Build(string.Format(IOResources.PipingSurfaceLinesCsvReader_ReadLine_Line_lacks_separator_0_, ';'));
Assert.AreEqual(expectedMessage, exception.Message);
}
}
@@ -529,12 +550,18 @@
// Assert
// 1st row lacks 1 coordinate value:
var exception = Assert.Throws(call);
- var expectedMessage = string.Format(IOResources.PipingSurfaceLinesCsvReader_ReadLine_File_SurfaceLineName_0_lacks_values_for_coordinate_triplet, "LacksOneCoordinate");
+ var expectedMessage = new FileReaderErrorMessageBuilder(path)
+ .WithLocation("op regel 2")
+ .WithSubject("profielmeting 'LacksOneCoordinate'")
+ .Build(IOResources.PipingSurfaceLinesCsvReader_ReadLine_SurfaceLine_lacks_values_for_coordinate_triplet);
Assert.AreEqual(expectedMessage, exception.Message);
// 2nd row lacks 2 coordinate values:
exception = Assert.Throws(call);
- expectedMessage = string.Format(IOResources.PipingSurfaceLinesCsvReader_ReadLine_File_SurfaceLineName_0_lacks_values_for_coordinate_triplet, "LacksTwoCoordinates");
+ expectedMessage = new FileReaderErrorMessageBuilder(path)
+ .WithLocation("op regel 3")
+ .WithSubject("profielmeting 'LacksTwoCoordinates'")
+ .Build(IOResources.PipingSurfaceLinesCsvReader_ReadLine_SurfaceLine_lacks_values_for_coordinate_triplet);
Assert.AreEqual(expectedMessage, exception.Message);
}
}
@@ -555,8 +582,10 @@
// Assert
var exception = Assert.Throws(call);
- var expectedMessage = string.Format(IOResources.PipingSurfaceLinesCsvReader_ReadLine_SurfaceLineName_0_has_reclining_geometry,
- "ArtifcialLocal");
+ var expectedMessage = new FileReaderErrorMessageBuilder(path)
+ .WithLocation("op regel 2")
+ .WithSubject("profielmeting 'ArtificialLocal'")
+ .Build(IOResources.PipingSurfaceLinesCsvReader_ReadLine_SurfaceLine_has_reclining_geometry);
Assert.AreEqual(expectedMessage, exception.Message);
}
}
Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Ringtoets.Piping.IO.Test.csproj
===================================================================
diff -u -r2f3973a8a6122be9d4c0a0db7a27dc3ca68580e3 -rf45d2d498e0354eb99e75191465d4cd5dc4dca13
--- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Ringtoets.Piping.IO.Test.csproj (.../Ringtoets.Piping.IO.Test.csproj) (revision 2f3973a8a6122be9d4c0a0db7a27dc3ca68580e3)
+++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Ringtoets.Piping.IO.Test.csproj (.../Ringtoets.Piping.IO.Test.csproj) (revision f45d2d498e0354eb99e75191465d4cd5dc4dca13)
@@ -56,6 +56,7 @@
+
Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/PipingSoilProfileReaderTest.cs
===================================================================
diff -u -r458ef844024d216a682e09fe8193fd6188921bc2 -rf45d2d498e0354eb99e75191465d4cd5dc4dca13
--- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/PipingSoilProfileReaderTest.cs (.../PipingSoilProfileReaderTest.cs) (revision 458ef844024d216a682e09fe8193fd6188921bc2)
+++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/PipingSoilProfileReaderTest.cs (.../PipingSoilProfileReaderTest.cs) (revision f45d2d498e0354eb99e75191465d4cd5dc4dca13)
@@ -41,7 +41,9 @@
// Assert
var exception = Assert.Throws(test);
- Assert.AreEqual(Resources.Error_Path_must_be_specified, exception.Message);
+ var expectedMessage = String.Format("Fout bij het lezen van bestand '{0}': {1}",
+ fileName, Resources.Error_Path_must_be_specified);
+ Assert.AreEqual(expectedMessage, exception.Message);
}
[Test]
Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/SurfaceLines/InvalidRow_NotMonotinocallyIncreasingLCoordinates.csv
===================================================================
diff -u -raadb1baaa37bf77a4174819851b07bc155028649 -rf45d2d498e0354eb99e75191465d4cd5dc4dca13
--- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/SurfaceLines/InvalidRow_NotMonotinocallyIncreasingLCoordinates.csv (.../InvalidRow_NotMonotinocallyIncreasingLCoordinates.csv) (revision aadb1baaa37bf77a4174819851b07bc155028649)
+++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/SurfaceLines/InvalidRow_NotMonotinocallyIncreasingLCoordinates.csv (.../InvalidRow_NotMonotinocallyIncreasingLCoordinates.csv) (revision f45d2d498e0354eb99e75191465d4cd5dc4dca13)
@@ -1,2 +1,2 @@
Profielnaam;X1;Y1;Z1;...;Xn;Yn;Zn
-ArtifcialLocal;1.0;1.0;1.0;3.0;3.0;3.0;2.0;2.0;2.0;4.0;4.0;4.0
+ArtificialLocal;1.0;1.0;1.0;3.0;3.0;3.0;2.0;2.0;2.0;4.0;4.0;4.0
Index: Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/PipingSurfaceLineCsvImporterTest.cs
===================================================================
diff -u -rd992a9538644381321f71d536c9ea85813d4c443 -rf45d2d498e0354eb99e75191465d4cd5dc4dca13
--- Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/PipingSurfaceLineCsvImporterTest.cs (.../PipingSurfaceLineCsvImporterTest.cs) (revision d992a9538644381321f71d536c9ea85813d4c443)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/PipingSurfaceLineCsvImporterTest.cs (.../PipingSurfaceLineCsvImporterTest.cs) (revision f45d2d498e0354eb99e75191465d4cd5dc4dca13)
@@ -10,6 +10,7 @@
using Rhino.Mocks;
using Ringtoets.Piping.Data;
+using Ringtoets.Piping.IO.Builders;
using Ringtoets.Piping.IO.Test.TestHelpers;
using Ringtoets.Piping.Plugin.FileImporter;
@@ -256,8 +257,8 @@
Action call = () => importedItem = importer.ImportItem(corruptPath, observableSurfaceLinesList);
// Assert
- var internalErrorMessage = String.Format(PipingIOResources.Error_Path_cannot_contain_Characters_0_,
- String.Join(", ", Path.GetInvalidFileNameChars()));
+ var internalErrorMessage = new FileReaderErrorMessageBuilder(corruptPath).Build(String.Format(PipingIOResources.Error_Path_cannot_contain_Characters_0_,
+ String.Join(", ", Path.GetInvalidFileNameChars())));
var expectedLogMessage = string.Format(ApplicationResources.PipingSurfaceLinesCsvImporter_Critical_error_reading_File_0_Cause_1_,
corruptPath, internalErrorMessage);
TestHelper.AssertLogMessageIsGenerated(call, expectedLogMessage, 1);
@@ -288,7 +289,7 @@
Action call = () => importedItem = importer.ImportItem(corruptPath, observableSurfaceLinesList);
// Assert
- var internalErrorMessage = PipingIOResources.Error_File_does_not_exist;
+ var internalErrorMessage = new FileReaderErrorMessageBuilder(corruptPath).Build(PipingIOResources.Error_File_does_not_exist);
var expectedLogMessage = string.Format(ApplicationResources.PipingSurfaceLinesCsvImporter_Critical_error_reading_File_0_Cause_1_,
corruptPath, internalErrorMessage);
TestHelper.AssertLogMessageIsGenerated(call, expectedLogMessage, 1);
@@ -319,7 +320,9 @@
Action call = () => importedItem = importer.ImportItem(corruptPath, observableSurfaceLinesList);
// Assert
- var internalErrorMessage = PipingIOResources.Error_File_empty;
+ var internalErrorMessage = new FileReaderErrorMessageBuilder(corruptPath)
+ .WithLocation("op regel 1")
+ .Build(PipingIOResources.Error_File_empty);
var expectedLogMessage = string.Format(ApplicationResources.PipingSurfaceLinesCsvImporter_Critical_error_reading_File_0_Cause_1_,
corruptPath, internalErrorMessage);
TestHelper.AssertLogMessageIsGenerated(call, expectedLogMessage, 1);
@@ -350,7 +353,9 @@
Action call = () => importedItem = importer.ImportItem(corruptPath, observableSurfaceLinesList);
// Assert
- var internalErrorMessage = PipingIOResources.PipingSurfaceLinesCsvReader_File_invalid_header;
+ var internalErrorMessage = new FileReaderErrorMessageBuilder(corruptPath)
+ .WithLocation("op regel 1")
+ .Build(PipingIOResources.PipingSurfaceLinesCsvReader_File_invalid_header);
var expectedLogMessage = string.Format(ApplicationResources.PipingSurfaceLinesCsvImporter_Critical_error_reading_File_0_Cause_1_,
corruptPath, internalErrorMessage);
TestHelper.AssertLogMessageIsGenerated(call, expectedLogMessage, 1);
@@ -390,7 +395,7 @@
Action call = () => importedItem = importer.ImportItem(copyTargetPath, observableSurfaceLinesList);
// Assert
- var internalErrorMessage = PipingIOResources.Error_File_does_not_exist;
+ var internalErrorMessage = new FileReaderErrorMessageBuilder(copyTargetPath).Build(PipingIOResources.Error_File_does_not_exist);
var expectedLogMessage = string.Format(ApplicationResources.PipingSurfaceLinesCsvImporter_Critical_error_reading_File_0_Cause_1_,
copyTargetPath, internalErrorMessage);
TestHelper.AssertLogMessageIsGenerated(call, expectedLogMessage, 1);
@@ -436,8 +441,10 @@
Action call = () => importedItem = importer.ImportItem(corruptPath, observableSurfaceLinesList);
// Assert
- var internalErrorMessage = String.Format(PipingIOResources.Error_File_has_not_double_SurfaceLineName_0_,
- "InvalidRow");
+ var internalErrorMessage = new FileReaderErrorMessageBuilder(corruptPath)
+ .WithLocation("op regel 3")
+ .WithSubject("profielmeting 'InvalidRow'")
+ .Build(PipingIOResources.Error_SurfaceLine_has_not_double);
var expectedLogMessage = string.Format(ApplicationResources.PipingSurfaceLinesCsvImporter_ReadPipingSurfaceLines_Parse_error_File_0_SurfaceLinesNumber_1_Message_2_,
corruptPath, 2, internalErrorMessage);
TestHelper.AssertLogMessageIsGenerated(call, expectedLogMessage, 1);
@@ -480,8 +487,10 @@
Action call = () => importedItem = importer.ImportItem(path, observableSurfaceLinesList);
// Assert
- var internalErrorMessage = String.Format(PipingIOResources.PipingSurfaceLinesCsvReader_ReadLine_SurfaceLineName_0_has_reclining_geometry,
- "Rotterdam1");
+ var internalErrorMessage = new FileReaderErrorMessageBuilder(path)
+ .WithLocation("op regel 2")
+ .WithSubject("profielmeting 'Rotterdam1'")
+ .Build(PipingIOResources.PipingSurfaceLinesCsvReader_ReadLine_SurfaceLine_has_reclining_geometry);
var expectedLogMessage = string.Format(ApplicationResources.PipingSurfaceLinesCsvImporter_ReadPipingSurfaceLines_Parse_error_File_0_SurfaceLinesNumber_1_Message_2_,
path, 1, internalErrorMessage);
TestHelper.AssertLogMessageIsGenerated(call, expectedLogMessage, 1);