Index: Ringtoets/Common/src/Ringtoets.Common.IO/Exporters/ConfigurationExporter.cs =================================================================== diff -u -r00a4b6318d0d1ae57df5ef362ba1e8908aa330be -rae137e9d1b26f1b37e47f2b4a6bf9ae03c6c9b2e --- Ringtoets/Common/src/Ringtoets.Common.IO/Exporters/ConfigurationExporter.cs (.../ConfigurationExporter.cs) (revision 00a4b6318d0d1ae57df5ef362ba1e8908aa330be) +++ Ringtoets/Common/src/Ringtoets.Common.IO/Exporters/ConfigurationExporter.cs (.../ConfigurationExporter.cs) (revision ae137e9d1b26f1b37e47f2b4a6bf9ae03c6c9b2e) @@ -70,7 +70,7 @@ } catch (CriticalFileWriteException e) { - log.ErrorFormat(Resources.ConfigurationExporter_Export_Error_exception_0_no_configuration_exported, e.Message); + log.ErrorFormat(Resources.ConfigurationExporter_Export_Exception_0_no_configuration_exported, e.Message); return false; } Index: Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.Designer.cs =================================================================== diff -u -r5735c9b5c663a0bc7762d1b1eb1483e5c4cfe526 -rae137e9d1b26f1b37e47f2b4a6bf9ae03c6c9b2e --- Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 5735c9b5c663a0bc7762d1b1eb1483e5c4cfe526) +++ Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision ae137e9d1b26f1b37e47f2b4a6bf9ae03c6c9b2e) @@ -106,9 +106,9 @@ /// /// Looks up a localized string similar to {0} Er is geen configuratie geƫxporteerd.. /// - public static string ConfigurationExporter_Export_Error_exception_0_no_configuration_exported { + public static string ConfigurationExporter_Export_Exception_0_no_configuration_exported { get { - return ResourceManager.GetString("ConfigurationExporter_Export_Error_exception_0_no_configuration_exported", resourceCulture); + return ResourceManager.GetString("ConfigurationExporter_Export_Exception_0_no_configuration_exported", resourceCulture); } } Index: Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.resx =================================================================== diff -u -r5735c9b5c663a0bc7762d1b1eb1483e5c4cfe526 -rae137e9d1b26f1b37e47f2b4a6bf9ae03c6c9b2e --- Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.resx (.../Resources.resx) (revision 5735c9b5c663a0bc7762d1b1eb1483e5c4cfe526) +++ Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.resx (.../Resources.resx) (revision ae137e9d1b26f1b37e47f2b4a6bf9ae03c6c9b2e) @@ -513,7 +513,7 @@ Valideren van ingelezen data. - + {0} Er is geen configuratie geƫxporteerd. Index: Ringtoets/Common/src/Ringtoets.Common.IO/Writers/CalculationConfigurationWriter.cs =================================================================== diff -u -r020439f88aaed9dd51967acbc8518f37c95791d1 -rae137e9d1b26f1b37e47f2b4a6bf9ae03c6c9b2e --- Ringtoets/Common/src/Ringtoets.Common.IO/Writers/CalculationConfigurationWriter.cs (.../CalculationConfigurationWriter.cs) (revision 020439f88aaed9dd51967acbc8518f37c95791d1) +++ Ringtoets/Common/src/Ringtoets.Common.IO/Writers/CalculationConfigurationWriter.cs (.../CalculationConfigurationWriter.cs) (revision ae137e9d1b26f1b37e47f2b4a6bf9ae03c6c9b2e) @@ -153,6 +153,8 @@ { WriteCalculation(calculation, writer); } + + throw new ArgumentException($"Cannot write calculation of type '{child.GetType()}' using this writer."); } } Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/Writers/CalculationConfigurationWriterTest.cs =================================================================== diff -u -r020439f88aaed9dd51967acbc8518f37c95791d1 -rae137e9d1b26f1b37e47f2b4a6bf9ae03c6c9b2e --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/Writers/CalculationConfigurationWriterTest.cs (.../CalculationConfigurationWriterTest.cs) (revision 020439f88aaed9dd51967acbc8518f37c95791d1) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/Writers/CalculationConfigurationWriterTest.cs (.../CalculationConfigurationWriterTest.cs) (revision ae137e9d1b26f1b37e47f2b4a6bf9ae03c6c9b2e) @@ -29,6 +29,7 @@ using Core.Common.IO.Exceptions; using Core.Common.TestUtil; using NUnit.Framework; +using Rhino.Mocks; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.DikeProfiles; using Ringtoets.Common.Data.Probabilistics; @@ -96,8 +97,9 @@ public void Write_InvalidDirectoryRights_ThrowCriticalFileWriteException() { // Setup - string directoryPath = TestHelper.GetScratchPadPath(nameof(Write_InvalidDirectoryRights_ThrowCriticalFileWriteException)); - using (var disposeHelper = new DirectoryDisposeHelper(TestHelper.GetScratchPadPath(), nameof(Write_InvalidDirectoryRights_ThrowCriticalFileWriteException))) + const string testName = nameof(Write_InvalidDirectoryRights_ThrowCriticalFileWriteException); + string directoryPath = TestHelper.GetScratchPadPath(testName); + using (var disposeHelper = new DirectoryDisposeHelper(TestHelper.GetScratchPadPath(), testName)) { string filePath = Path.Combine(directoryPath, "test.xml"); disposeHelper.LockDirectory(FileSystemRights.Write); @@ -321,7 +323,38 @@ } [Test] - [TestCaseSource(nameof(CalculationConfigurations))] + public void Write_CalculationOfTypeOtherThanGiven_ThrowsCriticalFileWriteExceptionWithInnerArgumentException() + { + // Setup + var mocks = new MockRepository(); + var calculation = mocks.Stub(); + mocks.ReplayAll(); + + string filePath = TestHelper.GetScratchPadPath("test.xml"); + + try + { + // Call + TestDelegate test = () => new SimpleCalculationConfigurationWriter().Write(new[] + { + calculation + }, filePath); + + // Assert + var exception = Assert.Throws(test); + var innerException = exception.InnerException; + Assert.IsNotNull(innerException); + Assert.AreEqual($"Cannot write calculation of type '{calculation.GetType()}' using this writer.", innerException.Message); + } + finally + { + File.Delete(filePath); + } + mocks.VerifyAll(); + } + + [Test] + [TestCaseSource(nameof(GetCalculationConfigurations))] public void Write_DifferentCalculationAndCalculationGroupConfigurations_ValidFile(IEnumerable configuration, string expectedFileContentsFileName) { // Setup @@ -369,7 +402,7 @@ } } - private static IEnumerable CalculationConfigurations() + private static IEnumerable GetCalculationConfigurations() { var calculation1 = new TestCalculation("calculation1"); var calculation2 = new TestCalculation("calculation2"); Index: Ringtoets/Revetment/src/Ringtoets.Revetment.IO/Ringtoets.Revetment.IO.csproj =================================================================== diff -u -r0e700dc5121b8f56c96d1d552056bbe6ebe29300 -rae137e9d1b26f1b37e47f2b4a6bf9ae03c6c9b2e --- Ringtoets/Revetment/src/Ringtoets.Revetment.IO/Ringtoets.Revetment.IO.csproj (.../Ringtoets.Revetment.IO.csproj) (revision 0e700dc5121b8f56c96d1d552056bbe6ebe29300) +++ Ringtoets/Revetment/src/Ringtoets.Revetment.IO/Ringtoets.Revetment.IO.csproj (.../Ringtoets.Revetment.IO.csproj) (revision ae137e9d1b26f1b37e47f2b4a6bf9ae03c6c9b2e) @@ -88,6 +88,7 @@ {52BA7627-CBAB-4209-BE77-3B5F31378277} Ringtoets.Common.IO + False {87C2C553-C0BC-40BF-B1EA-B83BFF357F27}