Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/HydraulicBoundaryDatabaseImporter/emptyschema.sqlite =================================================================== diff -u -r64eede81657b51fb755944fd3939ceefb839e591 -rd15fed37618a0ab58ea3e0aa4966f56c70ab5c74 Binary files differ Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Importers/HydraulicBoundaryDatabaseImporter.cs =================================================================== diff -u -r5a8997b5046cd6b6829d4c357384c989e295ffc8 -rd15fed37618a0ab58ea3e0aa4966f56c70ab5c74 --- Ringtoets/Integration/src/Ringtoets.Integration.IO/Importers/HydraulicBoundaryDatabaseImporter.cs (.../HydraulicBoundaryDatabaseImporter.cs) (revision 5a8997b5046cd6b6829d4c357384c989e295ffc8) +++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Importers/HydraulicBoundaryDatabaseImporter.cs (.../HydraulicBoundaryDatabaseImporter.cs) (revision d15fed37618a0ab58ea3e0aa4966f56c70ab5c74) @@ -1,4 +1,4 @@ -// Copyright (C) Stichting Deltares 2018. All rights reserved. +// Copyright (C) Stichting Deltares 2018. All rights reserved. // // This file is part of Ringtoets. // @@ -23,6 +23,7 @@ using System.IO; using System.Linq; using Core.Common.Base.IO; +using Core.Common.IO.Exceptions; using Core.Common.IO.Readers; using Core.Common.Util.Builders; using Ringtoets.Common.Data.Hydraulics; @@ -108,7 +109,7 @@ }; } } - catch (CriticalFileReadException e) + catch (Exception e) when (e is CriticalFileReadException || e is LineParseException) { return HandleCriticalFileReadError(e); } Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Importers/HydraulicBoundaryDatabaseImporterTest.cs =================================================================== diff -u -r5a8997b5046cd6b6829d4c357384c989e295ffc8 -rd15fed37618a0ab58ea3e0aa4966f56c70ab5c74 --- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Importers/HydraulicBoundaryDatabaseImporterTest.cs (.../HydraulicBoundaryDatabaseImporterTest.cs) (revision 5a8997b5046cd6b6829d4c357384c989e295ffc8) +++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Importers/HydraulicBoundaryDatabaseImporterTest.cs (.../HydraulicBoundaryDatabaseImporterTest.cs) (revision d15fed37618a0ab58ea3e0aa4966f56c70ab5c74) @@ -1,4 +1,4 @@ -// Copyright (C) Stichting Deltares 2018. All rights reserved. +// Copyright (C) Stichting Deltares 2018. All rights reserved. // // This file is part of Ringtoets. // @@ -112,6 +112,54 @@ } [Test] + public void Import_InvalidSchema_CancelImportWithErrorMessage() + { + // Setup + var mocks = new MockRepository(); + var handler = mocks.StrictMock(); + mocks.ReplayAll(); + + string path = Path.Combine(testDataPath, "corruptschema.sqlite"); + + var importer = new HydraulicBoundaryDatabaseImporter(new HydraulicBoundaryDatabase(), handler, path); + + // Call + var importSuccessful = true; + Action call = () => importSuccessful = importer.Import(); + + // Assert + string expectedMessage = $"Fout bij het lezen van bestand '{path}': kritieke fout opgetreden bij het uitlezen van waardes uit kolommen in de database." + + $"{Environment.NewLine}Er is geen hydraulische belastingen database gekoppeld."; + TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); + Assert.IsFalse(importSuccessful); + mocks.VerifyAll(); + } + + [Test] + public void Import_EmptySchema_CancelImportWithErrorMessage() + { + // Setup + var mocks = new MockRepository(); + var handler = mocks.StrictMock(); + mocks.ReplayAll(); + + string path = Path.Combine(testDataPath, "empty.sqlite"); + + var importer = new HydraulicBoundaryDatabaseImporter(new HydraulicBoundaryDatabase(), handler, path); + + // Call + var importSuccessful = true; + Action call = () => importSuccessful = importer.Import(); + + // Assert + string expectedMessage = $"Fout bij het lezen van bestand '{path}': kon geen locaties verkrijgen van de database." + + $"{Environment.NewLine}Er is geen hydraulische belastingen database gekoppeld."; + TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); + Assert.IsFalse(importSuccessful); + mocks.VerifyAll(); + } + + [Test] public void Import_ExistingFileWithoutHlcd_CancelImportWithErrorMessage() { // Setup Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/test-data/HydraulicBoundaryDatabaseImporter/corruptschema.sqlite =================================================================== diff -u Binary files differ Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/test-data/HydraulicBoundaryDatabaseImporter/empty.sqlite =================================================================== diff -u Binary files differ Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/test-data/HydraulicBoundaryDatabaseImporter/withoutHLCD/complete.sqlite =================================================================== diff -u Binary files differ Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/test-data/HydraulicBoundaryDatabaseImporter/withoutHLCD/empty.sqlite =================================================================== diff -u -rad5a4af7ff620379bbb94c0ab2b1d68d9bd01e8e -rd15fed37618a0ab58ea3e0aa4966f56c70ab5c74 Binary files differ