Index: Riskeer/Storage/src/Riskeer.Storage.Core/Read/HydraulicBoundaryDatabaseEntityReadExtensions.cs
===================================================================
diff -u -r1f44ff31cfcc30a7f79806d6eac552d1fa4a2eb2 -re9522dc9d31d3c3358ea6cee41e4d6ed47f4305d
--- Riskeer/Storage/src/Riskeer.Storage.Core/Read/HydraulicBoundaryDatabaseEntityReadExtensions.cs (.../HydraulicBoundaryDatabaseEntityReadExtensions.cs) (revision 1f44ff31cfcc30a7f79806d6eac552d1fa4a2eb2)
+++ Riskeer/Storage/src/Riskeer.Storage.Core/Read/HydraulicBoundaryDatabaseEntityReadExtensions.cs (.../HydraulicBoundaryDatabaseEntityReadExtensions.cs) (revision e9522dc9d31d3c3358ea6cee41e4d6ed47f4305d)
@@ -20,6 +20,7 @@
// All rights reserved.
using System;
+using System.Linq;
using Riskeer.Common.Data.Hydraulics;
using Riskeer.Storage.Core.DbContext;
@@ -36,9 +37,11 @@
///
/// The to update the
/// .
+ /// The object keeping track of read operations.
/// The to update.
/// Thrown when any parameter is null.
- public static void Read(this HydraulicBoundaryDatabaseEntity entity, HydraulicBoundaryDatabase hydraulicBoundaryDatabase)
+ public static void Read(this HydraulicBoundaryDatabaseEntity entity, HydraulicBoundaryDatabase hydraulicBoundaryDatabase,
+ ReadConversionCollector collector)
{
if (entity == null)
{
@@ -50,9 +53,20 @@
throw new ArgumentNullException(nameof(hydraulicBoundaryDatabase));
}
+ if (collector == null)
+ {
+ throw new ArgumentNullException(nameof(collector));
+ }
+
hydraulicBoundaryDatabase.FilePath = entity.FilePath;
hydraulicBoundaryDatabase.Version = entity.Version;
hydraulicBoundaryDatabase.UsePreprocessorClosure = Convert.ToBoolean(entity.UsePreprocessorClosure);
+
+ HydraulicBoundaryLocation[] readHydraulicBoundaryLocations = entity.HydraulicLocationEntities
+ .OrderBy(hl => hl.Order)
+ .Select(hle => hle.Read(collector))
+ .ToArray();
+ hydraulicBoundaryDatabase.Locations.AddRange(readHydraulicBoundaryLocations);
}
}
}
\ No newline at end of file
Index: Riskeer/Storage/test/Riskeer.Storage.Core.Test/Read/HydraulicBoundaryDatabaseEntityReadExtensionsTest.cs
===================================================================
diff -u -r1f44ff31cfcc30a7f79806d6eac552d1fa4a2eb2 -re9522dc9d31d3c3358ea6cee41e4d6ed47f4305d
--- Riskeer/Storage/test/Riskeer.Storage.Core.Test/Read/HydraulicBoundaryDatabaseEntityReadExtensionsTest.cs (.../HydraulicBoundaryDatabaseEntityReadExtensionsTest.cs) (revision 1f44ff31cfcc30a7f79806d6eac552d1fa4a2eb2)
+++ Riskeer/Storage/test/Riskeer.Storage.Core.Test/Read/HydraulicBoundaryDatabaseEntityReadExtensionsTest.cs (.../HydraulicBoundaryDatabaseEntityReadExtensionsTest.cs) (revision e9522dc9d31d3c3358ea6cee41e4d6ed47f4305d)
@@ -25,6 +25,7 @@
using Riskeer.Common.Data.Hydraulics;
using Riskeer.Storage.Core.DbContext;
using Riskeer.Storage.Core.Read;
+using Riskeer.Storage.Core.TestUtil.Hydraulics;
namespace Riskeer.Storage.Core.Test.Read
{
@@ -35,7 +36,7 @@
public void Read_EntityNull_ThrowsArgumentNullException()
{
// Call
- void Call() => ((HydraulicBoundaryDatabaseEntity) null).Read(new HydraulicBoundaryDatabase());
+ void Call() => ((HydraulicBoundaryDatabaseEntity) null).Read(new HydraulicBoundaryDatabase(), new ReadConversionCollector());
// Assert
var exception = Assert.Throws(Call);
@@ -49,14 +50,28 @@
var entity = new HydraulicBoundaryDatabaseEntity();
// Call
- void Call() => entity.Read(null);
+ void Call() => entity.Read(null, new ReadConversionCollector());
// Assert
var exception = Assert.Throws(Call);
Assert.AreEqual("hydraulicBoundaryData", exception.ParamName);
}
[Test]
+ public void Read_CollectorNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var entity = new HydraulicBoundaryDatabaseEntity();
+
+ // Call
+ void Call() => entity.Read(new HydraulicBoundaryDatabase(), null);
+
+ // Assert
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("collector", exception.ParamName);
+ }
+
+ [Test]
public void Read_WithValidEntity_UpdatesHydraulicBoundaryData()
{
// Setup
@@ -66,18 +81,25 @@
{
FilePath = "hrdFilePath",
Version = "1.0",
- UsePreprocessorClosure = Convert.ToByte(usePreprocessorClosure)
+ UsePreprocessorClosure = Convert.ToByte(usePreprocessorClosure),
+ HydraulicLocationEntities =
+ {
+ HydraulicLocationEntityTestFactory.CreateHydraulicLocationEntity()
+ }
};
var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
// Call
- entity.Read(hydraulicBoundaryDatabase);
+ entity.Read(hydraulicBoundaryDatabase, new ReadConversionCollector());
// Assert
Assert.AreEqual(entity.FilePath, hydraulicBoundaryDatabase.FilePath);
Assert.AreEqual(entity.Version, hydraulicBoundaryDatabase.Version);
Assert.AreEqual(usePreprocessorClosure, hydraulicBoundaryDatabase.UsePreprocessorClosure);
+
+ int expectedNrOfHydraulicBoundaryLocations = entity.HydraulicLocationEntities.Count;
+ Assert.AreEqual(expectedNrOfHydraulicBoundaryLocations, hydraulicBoundaryDatabase.Locations.Count);
}
}
}
\ No newline at end of file