Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Importers/HydraulicBoundaryDatabaseImporter.cs =================================================================== diff -u -r04052974af3462441e71b05c683d1bbba4e361ed -ra7b3949e1da336383b5879e7d63eeba92b8c8bd8 --- Ringtoets/Integration/src/Ringtoets.Integration.IO/Importers/HydraulicBoundaryDatabaseImporter.cs (.../HydraulicBoundaryDatabaseImporter.cs) (revision 04052974af3462441e71b05c683d1bbba4e361ed) +++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Importers/HydraulicBoundaryDatabaseImporter.cs (.../HydraulicBoundaryDatabaseImporter.cs) (revision a7b3949e1da336383b5879e7d63eeba92b8c8bd8) @@ -85,6 +85,8 @@ return false; } + AddHydraulicBoundaryDatabaseToDataModel(readHydraulicBoundaryDatabaseResult.Items.Single(), readHydraulicLocationConfigurationDatabaseResult.Items.Single()); + return true; } @@ -166,6 +168,12 @@ } } + private void AddHydraulicBoundaryDatabaseToDataModel(ReadHydraulicBoundaryDatabase readHydraulicBoundaryDatabase, + ReadHydraulicLocationConfigurationDatabase readHydraulicLocationConfigurationDatabase) + { + updateHandler.Update(ImportTarget, readHydraulicBoundaryDatabase, readHydraulicLocationConfigurationDatabase); + } + private ReadResult HandleCriticalFileReadError(Exception e) { string errorMessage = string.Format(Resources.HydraulicBoundaryDatabaseImporter_HandleCriticalFileReadError_Error_0_No_HydraulicBoundaryDatabase_imported, Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Importers/HydraulicBoundaryDatabaseImporterTest.cs =================================================================== diff -u -r04052974af3462441e71b05c683d1bbba4e361ed -ra7b3949e1da336383b5879e7d63eeba92b8c8bd8 --- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Importers/HydraulicBoundaryDatabaseImporterTest.cs (.../HydraulicBoundaryDatabaseImporterTest.cs) (revision 04052974af3462441e71b05c683d1bbba4e361ed) +++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Importers/HydraulicBoundaryDatabaseImporterTest.cs (.../HydraulicBoundaryDatabaseImporterTest.cs) (revision a7b3949e1da336383b5879e7d63eeba92b8c8bd8) @@ -21,12 +21,16 @@ using System; using System.IO; +using System.Linq; +using Core.Common.Base; using Core.Common.Base.IO; using Core.Common.TestUtil; using NUnit.Framework; using Rhino.Mocks; using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.IO.HydraRing; +using Ringtoets.HydraRing.IO.HydraulicBoundaryDatabase; +using Ringtoets.HydraRing.IO.HydraulicLocationConfigurationDatabase; using Ringtoets.Integration.IO.Handlers; using Ringtoets.Integration.IO.Importers; @@ -47,6 +51,7 @@ var exception = Assert.Throws(call); Assert.AreEqual("updateHandler", exception.ParamName); } + [Test] public void Constructor_ExpectedValues() { @@ -259,6 +264,48 @@ } [Test] + public void Import_WhenSuccessful_UpdatesHydraulicBoundaryDatabaseWithImportedData() + { + // Setup + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); + + var mocks = new MockRepository(); + var handler = mocks.StrictMock(); + handler.Expect(h => h.Update(Arg.Is.NotNull, + Arg.Is.NotNull, + Arg.Is.NotNull)) + .WhenCalled(invocation => + { + Assert.AreSame(hydraulicBoundaryDatabase, invocation.Arguments[0]); + + var readHydraulicBoundaryDatabase = (ReadHydraulicBoundaryDatabase) invocation.Arguments[1]; + Assert.AreEqual("Dutch coast South19-11-2015 12:0013", readHydraulicBoundaryDatabase.Version); + Assert.AreEqual((long) 13, readHydraulicBoundaryDatabase.TrackId); + Assert.AreEqual(18, readHydraulicBoundaryDatabase.Locations.Count()); + ReadHydraulicBoundaryLocation location = readHydraulicBoundaryDatabase.Locations.First(); + Assert.AreEqual(1, location.Id); + Assert.AreEqual("punt_flw_ 1", location.Name); + Assert.AreEqual(52697.5, location.CoordinateX); + Assert.AreEqual(427567.0, location.CoordinateY); + + var readHydraulicLocationConfigurationDatabase = (ReadHydraulicLocationConfigurationDatabase) invocation.Arguments[2]; + Assert.AreEqual(18, readHydraulicLocationConfigurationDatabase.LocationIds.Count); + }) + .Return(Enumerable.Empty()); + mocks.ReplayAll(); + + string filePath = Path.Combine(testDataPath, "complete.sqlite"); + var importer = new HydraulicBoundaryDatabaseImporter(hydraulicBoundaryDatabase, handler, filePath); + + // Call + bool importResult = importer.Import(); + + // Assert + Assert.IsTrue(importResult); + mocks.VerifyAll(); + } + + [Test] public void Import_ValidFiles_ExpectedProgressNotifications() { // Setup