Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/DunesBoundaryConditionsCalculationParserTest.cs =================================================================== diff -u -rca4b4bd58a131771afc45ac41fb8342acd29c048 -r5fcfd3d73f28585c211086ad413fc5d177ecd6b2 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/DunesBoundaryConditionsCalculationParserTest.cs (.../DunesBoundaryConditionsCalculationParserTest.cs) (revision ca4b4bd58a131771afc45ac41fb8342acd29c048) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/DunesBoundaryConditionsCalculationParserTest.cs (.../DunesBoundaryConditionsCalculationParserTest.cs) (revision 5fcfd3d73f28585c211086ad413fc5d177ecd6b2) @@ -19,10 +19,14 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using System.IO; +using System.Security.AccessControl; using Core.Common.TestUtil; using NUnit.Framework; +using Ringtoets.HydraRing.Calculation.Exceptions; using Ringtoets.HydraRing.Calculation.Parsers; +using Ringtoets.HydraRing.IO; namespace Ringtoets.HydraRing.Calculation.Test.Parsers { @@ -133,5 +137,25 @@ Assert.IsNull(parser.Output); Assert.IsTrue(TestHelper.CanOpenFileForWrite(Path.Combine(workingDirectory, outputFileName))); } + + [Test] + public void Parse_ErrorWhileReadingFile_ThrowsHydraRingFileParserExceptionWithInnerException() + { + // Setup + var parser = new DunesBoundaryConditionsCalculationParser(); + var workingDirectory = Path.Combine(testDataPath, "valid"); + + using (new DirectoryPermissionsRevoker(testDataPath, FileSystemRights.ReadData)) + { + // Call + TestDelegate call = () => parser.Parse(workingDirectory, 1); + + // Assert + var exception = Assert.Throws(call); + var expectedMessage = "Er is een fout opgetreden bij het lezen van het uitvoerbestand."; + Assert.AreEqual(expectedMessage, exception.Message); + Assert.IsInstanceOf(exception.InnerException); + } + } } } \ No newline at end of file