Index: Ringtoets/Common/src/Ringtoets.Common.IO/FileImporters/HydraulicBoundaryDatabaseImporter.cs =================================================================== diff -u -rb3b6c13cf736c134476b3db34281332d01ca86b1 -rcc0d30419fa22495223f4c7da667e50d4aa189e2 --- Ringtoets/Common/src/Ringtoets.Common.IO/FileImporters/HydraulicBoundaryDatabaseImporter.cs (.../HydraulicBoundaryDatabaseImporter.cs) (revision b3b6c13cf736c134476b3db34281332d01ca86b1) +++ Ringtoets/Common/src/Ringtoets.Common.IO/FileImporters/HydraulicBoundaryDatabaseImporter.cs (.../HydraulicBoundaryDatabaseImporter.cs) (revision cc0d30419fa22495223f4c7da667e50d4aa189e2) @@ -155,8 +155,7 @@ private void HandleException(Exception e) { - string message = string.Format(Resources.HydraulicBoundaryDatabaseImporter_ErrorMessage_0_file_skipped, e.Message); - log.Error(message); + log.Error(e.Message, e); } private HydraulicBoundaryDatabase GetHydraulicBoundaryDatabase() Index: Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.Designer.cs =================================================================== diff -u -r1df047ee4cb6680494a10a1f58ec16579bfd275f -rcc0d30419fa22495223f4c7da667e50d4aa189e2 --- Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 1df047ee4cb6680494a10a1f58ec16579bfd275f) +++ Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision cc0d30419fa22495223f4c7da667e50d4aa189e2) @@ -920,15 +920,6 @@ } /// - /// Looks up a localized string similar to {0} Het bestand wordt overgeslagen.. - /// - public static string HydraulicBoundaryDatabaseImporter_ErrorMessage_0_file_skipped { - get { - return ResourceManager.GetString("HydraulicBoundaryDatabaseImporter_ErrorMessage_0_file_skipped", resourceCulture); - } - } - - /// /// Looks up a localized string similar to Het bijbehorende HLCD bestand is niet gevonden in dezelfde map als het HRD bestand.. /// public static string HydraulicBoundaryDatabaseImporter_HLCD_sqlite_Not_Found { Index: Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.resx =================================================================== diff -u -r1df047ee4cb6680494a10a1f58ec16579bfd275f -rcc0d30419fa22495223f4c7da667e50d4aa189e2 --- Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.resx (.../Resources.resx) (revision 1df047ee4cb6680494a10a1f58ec16579bfd275f) +++ Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.resx (.../Resources.resx) (revision cc0d30419fa22495223f4c7da667e50d4aa189e2) @@ -379,9 +379,6 @@ Profielgegevens definiƫren geen dam en geen voorlandgeometrie. Bestand '{0}' wordt overgeslagen. - - {0} Het bestand wordt overgeslagen. - Het bijbehorende HLCD bestand is niet gevonden in dezelfde map als het HRD bestand. Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/FileImporters/HydraulicBoundaryDatabaseImporterTest.cs =================================================================== diff -u -rd12c953518f14c3d50136775b2c03afdf3a4f8f1 -rcc0d30419fa22495223f4c7da667e50d4aa189e2 --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/FileImporters/HydraulicBoundaryDatabaseImporterTest.cs (.../HydraulicBoundaryDatabaseImporterTest.cs) (revision d12c953518f14c3d50136775b2c03afdf3a4f8f1) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/FileImporters/HydraulicBoundaryDatabaseImporterTest.cs (.../HydraulicBoundaryDatabaseImporterTest.cs) (revision cc0d30419fa22495223f4c7da667e50d4aa189e2) @@ -24,8 +24,10 @@ using System.IO; using System.Linq; using Core.Common.Base.IO; +using Core.Common.IO.Exceptions; using Core.Common.TestUtil; using Core.Common.Utils.Builders; +using log4net.Core; using NUnit.Framework; using Rhino.Mocks; using Ringtoets.Common.Data.AssessmentSection; @@ -246,7 +248,7 @@ string validFilePath = Path.Combine(testDataPath, "completeWithLocationsToBeFilteredOut.sqlite"); // Precondition - Assert.IsTrue(File.Exists(validFilePath), $"Precodition failed. File does not exist: {validFilePath}"); + Assert.IsTrue(File.Exists(validFilePath), $"Precondition failed. File does not exist: {validFilePath}"); // Call var importResult = false; @@ -279,7 +281,7 @@ string copyValidFilePath = Path.Combine(testDataPath, "copyOfCompleteWithLocationsToBeFilteredOut.sqlite"); // Precondition - Assert.IsTrue(File.Exists(validFilePath), $"Precodition failed. File does not exist: {validFilePath}"); + Assert.IsTrue(File.Exists(validFilePath), $"Precondition failed. File does not exist: {validFilePath}"); importer.Import(assessmentSection, validFilePath); @@ -308,7 +310,7 @@ string validFilePath = Path.Combine(testDataPath, "completeWithLocationsToBeFilteredOut.sqlite"); // Precondition - Assert.IsTrue(File.Exists(validFilePath), $"Precodition failed. File does not exist: {validFilePath}"); + Assert.IsTrue(File.Exists(validFilePath), $"Precondition failed. File does not exist: {validFilePath}"); importer.Import(assessmentSection, validFilePath); @@ -335,15 +337,24 @@ mocks.ReplayAll(); string corruptPath = Path.Combine(testDataPath, "corruptschema.sqlite"); - string expectedLogMessage = $"Fout bij het lezen van bestand '{corruptPath}': kritieke fout opgetreden bij het uitlezen van waardes uit kolommen in de database. Het bestand wordt overgeslagen."; var importResult = true; // Call Action call = () => importResult = importer.Import(assessmentSection, corruptPath); // Assert - TestHelper.AssertLogMessageIsGenerated(call, expectedLogMessage, 1); + TestHelper.AssertLogMessagesWithLevelAndLoggedExceptions(call, messages => + { + Assert.AreEqual(1, messages.Count()); + Tuple expectedLog = messages.ElementAt(0); + + Assert.AreEqual(Level.Error, expectedLog.Item2); + + Exception loggedException = expectedLog.Item3; + Assert.IsInstanceOf(loggedException); + Assert.AreEqual(loggedException.Message, expectedLog.Item1); + }); Assert.IsFalse(importResult); Assert.IsNull(assessmentSection.HydraulicBoundaryDatabase, "No HydraulicBoundaryDatabase object should be created when import from corrupt database."); @@ -366,10 +377,19 @@ Action call = () => importResult = importer.Import(assessmentSection, validFilePath); // Assert - string expectedMessage = new FileReaderErrorMessageBuilder(validFilePath) - .Build("Kritieke fout opgetreden bij het uitlezen van waardes uit kolommen in de database. Het bestand wordt overgeslagen."); - TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); + TestHelper.AssertLogMessagesWithLevelAndLoggedExceptions(call, messages => + { + Assert.AreEqual(1, messages.Count()); + Tuple expectedLog = messages.ElementAt(0); + + Assert.AreEqual(Level.Error, expectedLog.Item2); + + Exception loggedException = expectedLog.Item3; + Assert.IsInstanceOf(loggedException); + Assert.AreEqual(loggedException.Message, expectedLog.Item1); + }); Assert.IsFalse(importResult); + Assert.IsNull(assessmentSection.HydraulicBoundaryDatabase, "No HydraulicBoundaryDatabase object should be created when import from corrupt database."); mocks.VerifyAll(); } } Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/TreeNodeInfos/HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs =================================================================== diff -u -rfaea7b000850729e2b0c6c2a06fe3a7e94541abd -rcc0d30419fa22495223f4c7da667e50d4aa189e2 --- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/TreeNodeInfos/HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs (.../HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs) (revision faea7b000850729e2b0c6c2a06fe3a7e94541abd) +++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/TreeNodeInfos/HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs (.../HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs) (revision cc0d30419fa22495223f4c7da667e50d4aa189e2) @@ -361,7 +361,7 @@ Action action = () => contextMenuStrip.Items[contextMenuImportHydraulicBoundaryDatabaseIndex].PerformClick(); // Then - string expectedMessage = $"Fout bij het lezen van bestand '{testFile}': kon geen locaties verkrijgen van de database. Het bestand wordt overgeslagen."; + string expectedMessage = $"Fout bij het lezen van bestand '{testFile}': kon geen locaties verkrijgen van de database."; TestHelper.AssertLogMessageIsGenerated(action, expectedMessage); Assert.IsNull(assessmentSection.HydraulicBoundaryDatabase);