Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Importers/HydraulicBoundaryDatabaseImporter.cs =================================================================== diff -u -r11ee95784513ed761bee00e2422b061aa3060525 -r66ed29215a235e09673176f6efd2da2a6997c141 --- Ringtoets/Integration/src/Ringtoets.Integration.IO/Importers/HydraulicBoundaryDatabaseImporter.cs (.../HydraulicBoundaryDatabaseImporter.cs) (revision 11ee95784513ed761bee00e2422b061aa3060525) +++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Importers/HydraulicBoundaryDatabaseImporter.cs (.../HydraulicBoundaryDatabaseImporter.cs) (revision 66ed29215a235e09673176f6efd2da2a6997c141) @@ -94,7 +94,7 @@ ReadHydraulicLocationConfigurationDatabase readHydraulicLocationConfigurationDatabase = readHydraulicLocationConfigurationDatabaseResult.Items.Single(); if (!IsValidReadHydraulicLocationConfigurationDatabase(readHydraulicLocationConfigurationDatabase)) { - Log.Error(BuildErrorMessage(GetHlcdFilePath(), "placeHolder.")); + Log.Error(BuildErrorMessage(GetHlcdFilePath(), Resources.HydraulicBoundaryDatabaseImporter_HLCD_Invalid_number_of_ScenarioInformation_entries)); return false; } Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Properties/Resources.Designer.cs =================================================================== diff -u -rad280ce365e40d1a0d110ba5ff3463a146cef26e -r66ed29215a235e09673176f6efd2da2a6997c141 --- Ringtoets/Integration/src/Ringtoets.Integration.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision ad280ce365e40d1a0d110ba5ff3463a146cef26e) +++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 66ed29215a235e09673176f6efd2da2a6997c141) @@ -132,6 +132,16 @@ } /// + /// Looks up a localized string similar to de tabel 'ScenarioInformation' in de HLCD moet exact 1 rij bevatten.. + /// + internal static string HydraulicBoundaryDatabaseImporter_HLCD_Invalid_number_of_ScenarioInformation_entries { + get { + return ResourceManager.GetString("HydraulicBoundaryDatabaseImporter_HLCD_Invalid_number_of_ScenarioInformation_entr" + + "ies", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Het bijbehorende HLCD bestand is niet gevonden in dezelfde map als het HRD bestand.. /// internal static string HydraulicBoundaryDatabaseImporter_HLCD_sqlite_Not_Found { Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Properties/Resources.resx =================================================================== diff -u -rad280ce365e40d1a0d110ba5ff3463a146cef26e -r66ed29215a235e09673176f6efd2da2a6997c141 --- Ringtoets/Integration/src/Ringtoets.Integration.IO/Properties/Resources.resx (.../Resources.resx) (revision ad280ce365e40d1a0d110ba5ff3463a146cef26e) +++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Properties/Resources.resx (.../Resources.resx) (revision 66ed29215a235e09673176f6efd2da2a6997c141) @@ -175,4 +175,7 @@ Kon het rekeninstellingen bestand niet openen. {0} + + de tabel 'ScenarioInformation' in de HLCD moet exact 1 rij bevatten. + \ No newline at end of file Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Importers/HydraulicBoundaryDatabaseImporterTest.cs =================================================================== diff -u -r11ee95784513ed761bee00e2422b061aa3060525 -r66ed29215a235e09673176f6efd2da2a6997c141 --- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Importers/HydraulicBoundaryDatabaseImporterTest.cs (.../HydraulicBoundaryDatabaseImporterTest.cs) (revision 11ee95784513ed761bee00e2422b061aa3060525) +++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Importers/HydraulicBoundaryDatabaseImporterTest.cs (.../HydraulicBoundaryDatabaseImporterTest.cs) (revision 66ed29215a235e09673176f6efd2da2a6997c141) @@ -252,7 +252,7 @@ Action call = () => importSuccessful = importer.Import(); // Assert - string expectedMessage = $"Fout bij het lezen van bestand '{hlcdFilePath}': placeHolder." + string expectedMessage = $"Fout bij het lezen van bestand '{hlcdFilePath}': de tabel 'ScenarioInformation' in de HLCD moet exact 1 rij bevatten." + $"{Environment.NewLine}Er is geen hydraulische belastingen database gekoppeld."; TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); Assert.IsFalse(importSuccessful); @@ -317,7 +317,7 @@ var mocks = new MockRepository(); var handler = mocks.StrictMock(); handler.Expect(h => h.IsConfirmationRequired(Arg.Is.Same(hydraulicBoundaryDatabase), - Arg.Is.NotNull)) + Arg.Is.NotNull)) .WhenCalled(invocation => { AssertReadHydraulicBoundaryDatabase((ReadHydraulicBoundaryDatabase) invocation.Arguments[1]); @@ -360,36 +360,44 @@ } [Test] - public void Import_WithValidFileAndHlcdWithValidScenarioInformation_UpdatesHydraulicBoundaryDatabaseWithImportedData() + [TestCase(true)] + [TestCase(false)] + public void Import_WithValidFileAndHlcdWithValidScenarioInformation_UpdatesHydraulicBoundaryDatabaseWithImportedData(bool confirmationRequired) { // Setup string filePath = Path.Combine(testDataPath, "hlcdWithValidScenarioInformation", "complete.sqlite"); var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); var mocks = new MockRepository(); var handler = mocks.StrictMock(); - handler.Stub(h => h.IsConfirmationRequired(Arg.Is.Same(hydraulicBoundaryDatabase), - Arg.Is.NotNull)) + handler.Expect(h => h.IsConfirmationRequired(Arg.Is.Same(hydraulicBoundaryDatabase), + Arg.Is.NotNull)) .WhenCalled(invocation => { - AssertReadHydraulicBoundaryDatabase((ReadHydraulicBoundaryDatabase)invocation.Arguments[1]); + AssertReadHydraulicBoundaryDatabase((ReadHydraulicBoundaryDatabase) invocation.Arguments[1]); }) - .Return(false); + .Return(confirmationRequired); + + if (confirmationRequired) + { + handler.Expect(h => h.InquireConfirmation()).Return(true); + } + handler.Expect(h => h.Update(Arg.Is.Same(hydraulicBoundaryDatabase), Arg.Is.NotNull, Arg.Is.NotNull, Arg>.Is.NotNull, Arg.Is.Same(filePath))) .WhenCalled(invocation => { - AssertReadHydraulicBoundaryDatabase((ReadHydraulicBoundaryDatabase)invocation.Arguments[1]); + AssertReadHydraulicBoundaryDatabase((ReadHydraulicBoundaryDatabase) invocation.Arguments[1]); - var readHydraulicLocationConfigurationDatabase = (ReadHydraulicLocationConfigurationDatabase)invocation.Arguments[2]; + var readHydraulicLocationConfigurationDatabase = (ReadHydraulicLocationConfigurationDatabase) invocation.Arguments[2]; Assert.AreEqual(18, readHydraulicLocationConfigurationDatabase.LocationIdMappings.Count()); Assert.AreEqual(1, readHydraulicLocationConfigurationDatabase.ReadHydraulicLocationConfigurationDatabaseSettings.Count()); Assert.IsTrue(readHydraulicLocationConfigurationDatabase.IsScenarioInformationPresent); - var excludedLocationIds = (IEnumerable)invocation.Arguments[3]; + var excludedLocationIds = (IEnumerable) invocation.Arguments[3]; Assert.AreEqual(0, excludedLocationIds.Count()); }) .Return(Enumerable.Empty());