Index: Riskeer/Storage/src/Riskeer.Storage.Core/Create/HydraulicBoundaryDatabaseCreateExtensions.cs
===================================================================
diff -u -rfc6767838834f2e37a011e3b441413dec7036301 -r3a18b9a985e7ac9b0c946edd37b1d427fd4aaccd
--- Riskeer/Storage/src/Riskeer.Storage.Core/Create/HydraulicBoundaryDatabaseCreateExtensions.cs (.../HydraulicBoundaryDatabaseCreateExtensions.cs) (revision fc6767838834f2e37a011e3b441413dec7036301)
+++ Riskeer/Storage/src/Riskeer.Storage.Core/Create/HydraulicBoundaryDatabaseCreateExtensions.cs (.../HydraulicBoundaryDatabaseCreateExtensions.cs) (revision 3a18b9a985e7ac9b0c946edd37b1d427fd4aaccd)
@@ -39,22 +39,38 @@
/// The to create a
/// for.
/// Index at which this instance resides inside its parent container.
+ /// The object keeping track of create operations.
/// A new .
- /// Thrown when is null.
- internal static HydraulicBoundaryDatabaseEntity Create(this HydraulicBoundaryDatabase hydraulicBoundaryDatabase, int order)
+ /// Thrown when
+ /// or is null.
+ internal static HydraulicBoundaryDatabaseEntity Create(this HydraulicBoundaryDatabase hydraulicBoundaryDatabase,
+ PersistenceRegistry registry, int order)
{
if (hydraulicBoundaryDatabase == null)
{
throw new ArgumentNullException(nameof(hydraulicBoundaryDatabase));
}
- return new HydraulicBoundaryDatabaseEntity
+ if (registry == null)
{
+ throw new ArgumentNullException(nameof(registry));
+ }
+
+ var entity = new HydraulicBoundaryDatabaseEntity
+ {
FilePath = hydraulicBoundaryDatabase.FilePath.DeepClone(),
Version = hydraulicBoundaryDatabase.Version.DeepClone(),
UsePreprocessorClosure = Convert.ToByte(hydraulicBoundaryDatabase.UsePreprocessorClosure),
Order = order
};
+
+ for (var i = 0; i < hydraulicBoundaryDatabase.Locations.Count; i++)
+ {
+ HydraulicBoundaryLocation location = hydraulicBoundaryDatabase.Locations[i];
+ entity.HydraulicLocationEntities.Add(location.Create(registry, i));
+ }
+
+ return entity;
}
}
}
\ No newline at end of file
Index: Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/HydraulicBoundaryDatabaseCreateExtensionsTest.cs
===================================================================
diff -u -rfc6767838834f2e37a011e3b441413dec7036301 -r3a18b9a985e7ac9b0c946edd37b1d427fd4aaccd
--- Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/HydraulicBoundaryDatabaseCreateExtensionsTest.cs (.../HydraulicBoundaryDatabaseCreateExtensionsTest.cs) (revision fc6767838834f2e37a011e3b441413dec7036301)
+++ Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/HydraulicBoundaryDatabaseCreateExtensionsTest.cs (.../HydraulicBoundaryDatabaseCreateExtensionsTest.cs) (revision 3a18b9a985e7ac9b0c946edd37b1d427fd4aaccd)
@@ -35,35 +35,56 @@
public void Create_HydraulicBoundaryDatabaseNull_ThrowsArgumentNullException()
{
// Call
- void Call() => HydraulicBoundaryDatabaseCreateExtensions.Create(null, 0);
+ void Call() => ((HydraulicBoundaryDatabase) null).Create(new PersistenceRegistry(), 0);
// Assert
var exception = Assert.Throws(Call);
Assert.AreEqual("hydraulicBoundaryDatabase", exception.ParamName);
}
-
+
[Test]
+ public void Create_RegistryNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
+
+ // Call
+ void Call() => hydraulicBoundaryDatabase.Create(null, 0);
+
+ // Assert
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("registry", exception.ParamName);
+ }
+
+ [Test]
public void Create_ValidHydraulicBoundaryDatabase_ReturnsHydraulicBoundaryDatabaseEntity()
{
// Setup
var random = new Random(21);
int order = random.Next();
-
+
var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase
{
FilePath = "hrdFilePath",
Version = "version",
- UsePreprocessorClosure = random.NextBoolean()
+ UsePreprocessorClosure = random.NextBoolean(),
+ Locations =
+ {
+ new HydraulicBoundaryLocation(-1, "name", 1, 2)
+ }
};
// Call
- HydraulicBoundaryDatabaseEntity entity = hydraulicBoundaryDatabase.Create(order);
-
+ HydraulicBoundaryDatabaseEntity entity = hydraulicBoundaryDatabase.Create(new PersistenceRegistry(), order);
+
// Assert
TestHelper.AssertAreEqualButNotSame(hydraulicBoundaryDatabase.FilePath, entity.FilePath);
TestHelper.AssertAreEqualButNotSame(hydraulicBoundaryDatabase.Version, entity.Version);
TestHelper.AssertAreEqualButNotSame(Convert.ToByte(hydraulicBoundaryDatabase.UsePreprocessorClosure), entity.UsePreprocessorClosure);
TestHelper.AssertAreEqualButNotSame(order, entity.Order);
+
+ int expectedNrOfHydraulicBoundaryLocations = hydraulicBoundaryDatabase.Locations.Count;
+ Assert.AreEqual(expectedNrOfHydraulicBoundaryLocations, entity.HydraulicLocationEntities.Count);
}
}
}
\ No newline at end of file