Index: Ringtoets/Common/src/Ringtoets.Common.IO/HydraRing/HydraRingSettingsDatabaseReader.cs =================================================================== diff -u -r76e7f2d96ecaa823b6ef4f63bd5faef63886a0d5 -r6d91aa930b2925289735817e280a54839469c373 --- Ringtoets/Common/src/Ringtoets.Common.IO/HydraRing/HydraRingSettingsDatabaseReader.cs (.../HydraRingSettingsDatabaseReader.cs) (revision 76e7f2d96ecaa823b6ef4f63bd5faef63886a0d5) +++ Ringtoets/Common/src/Ringtoets.Common.IO/HydraRing/HydraRingSettingsDatabaseReader.cs (.../HydraRingSettingsDatabaseReader.cs) (revision 6d91aa930b2925289735817e280a54839469c373) @@ -120,8 +120,6 @@ $"WHERE LocationID = {locationIdParameterName}"; excludedPreprocessorLocationsQuery = $"SELECT {locationIdColumn} FROM ExcludedLocationsPreprocessor"; - - ValidateSchema(); } /// @@ -318,25 +316,6 @@ } } - /// - /// Verifies that the schema of the opened settings database is valid. - /// - /// Thrown when the - /// opened database doesn't have the expected schema. - private void ValidateSchema() - { - if (!ContainsRequiredTables(GetColumnDefinitions(Connection))) - { - CloseConnection(); - throw new CriticalFileReadException(Resources.HydraRingSettingsDatabase_Hydraulic_calculation_settings_database_has_invalid_schema); - } - } - - private bool ContainsRequiredTables(List> definitions) - { - return GetValidSchema().All(definitions.Contains); - } - private IDataReader CreateDesignTablesDataReader(long locationId, HydraRingFailureMechanismType calculationType) { var locationParameter = new SQLiteParameter @@ -434,34 +413,5 @@ { return CreateDataReader(excludedPreprocessorLocationsQuery); } - - private List> GetValidSchema() - { - using (var validSchemaConnection = new SQLiteConnection("Data Source=:memory:")) - using (SQLiteCommand command = validSchemaConnection.CreateCommand()) - { - validSchemaConnection.Open(); - command.CommandText = Resources.settings_schema; - command.ExecuteNonQuery(); - return GetColumnDefinitions(validSchemaConnection); - } - } - - private static List> GetColumnDefinitions(SQLiteConnection connection) - { - DataTable columns = connection.GetSchema("COLUMNS"); - - var definitions = new List>(); - for (var i = 0; i < columns.Rows.Count; i++) - { - DataRow dataRow = columns.Rows[i]; - definitions.Add( - Tuple.Create( - ((string) dataRow["TABLE_NAME"]).ToLower(), - ((string) dataRow["COLUMN_NAME"]).ToLower() - )); - } - return definitions; - } } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/FileImporters/HydraulicBoundaryDatabaseImporterTest.cs =================================================================== diff -u -r3147d2f42ddbf18f08e0015f71aeeec2de60dd89 -r6d91aa930b2925289735817e280a54839469c373 --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/FileImporters/HydraulicBoundaryDatabaseImporterTest.cs (.../HydraulicBoundaryDatabaseImporterTest.cs) (revision 3147d2f42ddbf18f08e0015f71aeeec2de60dd89) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/FileImporters/HydraulicBoundaryDatabaseImporterTest.cs (.../HydraulicBoundaryDatabaseImporterTest.cs) (revision 6d91aa930b2925289735817e280a54839469c373) @@ -214,29 +214,6 @@ } [Test] - public void Import_ExistingFileWithInvalidSettingsDatabaseSchema_ThrowCriticalFileReadException() - { - // Setup - var mocks = new MockRepository(); - var assessmentSection = mocks.Stub(); - assessmentSection.Expect(section => section.NotifyObservers()).Repeat.Never(); - mocks.ReplayAll(); - - string validFilePath = Path.Combine(testDataPath, "invalidSettingsSchema", "complete.sqlite"); - - // Call - TestDelegate test = () => importer.Import(assessmentSection, validFilePath); - - // Assert - string expectedMessage = new FileReaderErrorMessageBuilder(validFilePath).Build( - "Kon het rekeninstellingen bestand niet openen. De rekeninstellingen database heeft niet het juiste schema."); - var exception = Assert.Throws(test); - Assert.AreEqual(expectedMessage, exception.Message); - - mocks.VerifyAll(); - } - - [Test] public void Import_ImportingToValidTargetWithValidFileWithoutUsePreprocessor_ImportHydraulicBoundaryLocationsToCollectionAndAssessmentSectionNotified() { // Setup Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/HydraRing/HydraRingSettingsDatabaseReaderTest.cs =================================================================== diff -u -rc230da5631e073c87657dd0f32aa7c3651c427df -r6d91aa930b2925289735817e280a54839469c373 --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/HydraRing/HydraRingSettingsDatabaseReaderTest.cs (.../HydraRingSettingsDatabaseReaderTest.cs) (revision c230da5631e073c87657dd0f32aa7c3651c427df) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/HydraRing/HydraRingSettingsDatabaseReaderTest.cs (.../HydraRingSettingsDatabaseReaderTest.cs) (revision 6d91aa930b2925289735817e280a54839469c373) @@ -66,18 +66,6 @@ } [Test] - public void Validate_InvalidSchema_ReturnsFalseFileNotLocked() - { - // Call - TestDelegate test = () => new HydraRingSettingsDatabaseReader(invalidSchemaDatabasePath); - - // Assert - string message = Assert.Throws(test).Message; - Assert.AreEqual("De rekeninstellingen database heeft niet het juiste schema.", message); - Assert.IsTrue(TestHelper.CanOpenFileForWrite(invalidSchemaDatabasePath)); - } - - [Test] [TestCase(-1)] [TestCase(12)] [TestCase(15)] Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/TreeNodeInfos/HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs =================================================================== diff -u -rf8c28b3b04cdabb62ea37772efcb1f4ebbbf2b9e -r6d91aa930b2925289735817e280a54839469c373 --- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/TreeNodeInfos/HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs (.../HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs) (revision f8c28b3b04cdabb62ea37772efcb1f4ebbbf2b9e) +++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/TreeNodeInfos/HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs (.../HydraulicBoundaryDatabaseContextTreeNodeInfoTest.cs) (revision 6d91aa930b2925289735817e280a54839469c373) @@ -470,55 +470,6 @@ [Test] [Apartment(ApartmentState.STA)] - public void GivenNoFilePathIsSet_WhenOpeneningValidFileWithInvalidSettingsDatabaseFromContextMenu_ThenPathWillNotBeSetAndLogMessageAdded() - { - // Given - string testFile = Path.Combine(testDataPathInvalidSettings, "HRD dutch coast south.sqlite"); - - const int contextMenuImportHydraulicBoundaryDatabaseIndex = 0; - - var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); - var hydraulicBoundaryDatabaseContext = new HydraulicBoundaryDatabaseContext(assessmentSection); - - using (var treeViewControl = new TreeViewControl()) - using (var plugin = new RingtoetsPlugin()) - { - var mainWindow = mocks.Stub(); - - var gui = mocks.Stub(); - gui.Stub(g => g.MainWindow).Return(mainWindow); - gui.Stub(g => g.ProjectOpened += null).IgnoreArguments(); - gui.Stub(g => g.ProjectOpened -= null).IgnoreArguments(); - gui.Stub(cmp => cmp.Get(hydraulicBoundaryDatabaseContext, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); - mocks.ReplayAll(); - - DialogBoxHandler = (name, wnd) => - { - var tester = new OpenFileDialogTester(wnd); - tester.OpenFile(testFile); - }; - - TreeNodeInfo info = GetInfo(plugin); - plugin.Gui = gui; - - using (ContextMenuStrip contextMenuStrip = info.ContextMenuStrip(hydraulicBoundaryDatabaseContext, null, treeViewControl)) - { - // When - Action action = () => contextMenuStrip.Items[contextMenuImportHydraulicBoundaryDatabaseIndex].PerformClick(); - - // Then - string expectedMessage = - $"Fout bij het lezen van bestand '{testFile}': kon het rekeninstellingen bestand niet openen. De rekeninstellingen database heeft niet het juiste schema."; - TestHelper.AssertLogMessageIsGenerated(action, expectedMessage); - - Assert.IsNull(assessmentSection.HydraulicBoundaryDatabase); - } - } - mocks.VerifyAll(); - } - - [Test] - [Apartment(ApartmentState.STA)] public void GivenFilePathIsSet_WhenOpeningSameFileFromContextMenu_ThenCalculationsWillNotBeClearedAndNoNotifyObservers() { // Given