Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/PipingFailureMechanismEntityConverter.cs
===================================================================
diff -u -rd242e89e13ef602facae6a1ef91660242bcef340 -r98df6e59fb589e5326b8f904dac98d402cb35b9c
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/PipingFailureMechanismEntityConverter.cs (.../PipingFailureMechanismEntityConverter.cs) (revision d242e89e13ef602facae6a1ef91660242bcef340)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/PipingFailureMechanismEntityConverter.cs (.../PipingFailureMechanismEntityConverter.cs) (revision 98df6e59fb589e5326b8f904dac98d402cb35b9c)
@@ -39,6 +39,11 @@
throw new ArgumentNullException("entity");
}
+ if (entity.FailureMechanismType != (int)FailureMechanismType.DikesPipingFailureMechanism)
+ {
+ throw new ArgumentException(@"Incorrect modelType", "entity");
+ }
+
var failureMechanism = new PipingFailureMechanism();
failureMechanism.StorageId = entity.FailureMechanismEntityId;
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/ProjectEntityConverter.cs
===================================================================
diff -u -rd242e89e13ef602facae6a1ef91660242bcef340 -r98df6e59fb589e5326b8f904dac98d402cb35b9c
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/ProjectEntityConverter.cs (.../ProjectEntityConverter.cs) (revision d242e89e13ef602facae6a1ef91660242bcef340)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/ProjectEntityConverter.cs (.../ProjectEntityConverter.cs) (revision 98df6e59fb589e5326b8f904dac98d402cb35b9c)
@@ -35,19 +35,20 @@
/// Converts to .
///
/// The to convert.
- /// The to obtain the model.
/// A new instance of , based on the properties of .
- /// Thrown when or is null.
+ /// Thrown when is null.
public Project ConvertEntityToModel(ProjectEntity entity)
{
if (entity == null)
{
throw new ArgumentNullException("entity");
}
- var project = new Project();
- project.StorageId = entity.ProjectEntityId;
- project.Description = entity.Description;
+ var project = new Project
+ {
+ StorageId = entity.ProjectEntityId,
+ Description = entity.Description
+ };
return project;
}
@@ -73,7 +74,7 @@
}
entity.ProjectEntityId = modelObject.StorageId;
entity.Description = modelObject.Description;
- entity.LastUpdated = new DateTime().Ticks;
+ entity.LastUpdated = (int)(DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1)).TotalSeconds;
}
}
}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/IRingtoetsEntities.cs
===================================================================
diff -u -ra6371ac68897b69e2efd537fa29bb6564f50fdcf -r98df6e59fb589e5326b8f904dac98d402cb35b9c
--- Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/IRingtoetsEntities.cs (.../IRingtoetsEntities.cs) (revision a6371ac68897b69e2efd537fa29bb6564f50fdcf)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/IRingtoetsEntities.cs (.../IRingtoetsEntities.cs) (revision 98df6e59fb589e5326b8f904dac98d402cb35b9c)
@@ -31,26 +31,34 @@
public interface IRingtoetsEntities
{
///
- /// of
+ /// Gets a of containing
+ /// every entity found in the database.
///
DbSet ProjectEntities { get; }
///
- /// of
+ /// Gets a of containing
+ /// every entity found in the database.
///
DbSet DikeAssessmentSectionEntities { get; }
///
- /// of
+ /// Gets a of containing
+ /// every entity found in the database.
///
DbSet FailureMechanismEntities { get; }
///
- /// of
+ /// Gets a of containing
+ /// every entity found in the database.
///
DbSet HydraulicLocationEntities { get; }
- DbSet Set() where TEntity : class;
+ ///
+ /// Gets a of containing
+ /// every entity found in the database.
+ ///
+ DbSet ReferenceLinePointEntities { get; }
///
/// Persists all updates to the database and resets change tracking in the object context, see .
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/DikeAssessmentSectionEntityPersistor.cs
===================================================================
diff -u -r0b5ecd8a04803bce1ed8398053e9b7cb7404b886 -r98df6e59fb589e5326b8f904dac98d402cb35b9c
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/DikeAssessmentSectionEntityPersistor.cs (.../DikeAssessmentSectionEntityPersistor.cs) (revision 0b5ecd8a04803bce1ed8398053e9b7cb7404b886)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/DikeAssessmentSectionEntityPersistor.cs (.../DikeAssessmentSectionEntityPersistor.cs) (revision 98df6e59fb589e5326b8f904dac98d402cb35b9c)
@@ -37,7 +37,7 @@
///
public class DikeAssessmentSectionEntityPersistor
{
- private readonly IRingtoetsEntities dbContext;
+ private readonly DbSet dikeAssessmentSectionSet;
private readonly DikeAssessmentSectionEntityConverter converter;
private readonly Dictionary insertedList = new Dictionary();
private readonly ICollection modifiedList = new List();
@@ -57,13 +57,13 @@
{
throw new ArgumentNullException("ringtoetsContext");
}
- dbContext = ringtoetsContext;
+ dikeAssessmentSectionSet = ringtoetsContext.DikeAssessmentSectionEntities;
converter = new DikeAssessmentSectionEntityConverter();
- dikePipingFailureMechanismEntityPersistor = new DikesPipingFailureMechanismEntityPersistor(dbContext);
- hydraulicLocationEntityPersistor = new HydraulicLocationEntityPersistor(dbContext);
- referenceLinePersistor = new ReferenceLinePersistor(dbContext);
+ dikePipingFailureMechanismEntityPersistor = new DikesPipingFailureMechanismEntityPersistor(ringtoetsContext);
+ hydraulicLocationEntityPersistor = new HydraulicLocationEntityPersistor(ringtoetsContext);
+ referenceLinePersistor = new ReferenceLinePersistor(ringtoetsContext);
}
///
@@ -156,7 +156,7 @@
public void RemoveUnModifiedEntries(ICollection parentNavigationProperty)
{
var untouchedModifiedList = parentNavigationProperty.Where(e => e.DikeAssessmentSectionEntityId > 0 && !modifiedList.Contains(e));
- dbContext.Set().RemoveRange(untouchedModifiedList);
+ dikeAssessmentSectionSet.RemoveRange(untouchedModifiedList);
modifiedList.Clear();
}
@@ -182,12 +182,7 @@
dikePipingFailureMechanismEntityPersistor.UpdateModel(entity.FailureMechanismEntities, model.PipingFailureMechanism);
dikePipingFailureMechanismEntityPersistor.RemoveUnModifiedEntries(entity.FailureMechanismEntities);
- if (model.HydraulicBoundaryDatabase != null)
- {
- hydraulicLocationEntityPersistor.UpdateModel(entity.HydraulicLocationEntities, model.HydraulicBoundaryDatabase);
- }
- hydraulicLocationEntityPersistor.RemoveUnModifiedEntries(entity.HydraulicLocationEntities);
-
+ hydraulicLocationEntityPersistor.UpdateModel(entity.HydraulicLocationEntities, model.HydraulicBoundaryDatabase);
referenceLinePersistor.InsertModel(entity.ReferenceLinePointEntities, model.ReferenceLine);
}
@@ -199,15 +194,9 @@
private void InsertChildren(DikeAssessmentSection model, DikeAssessmentSectionEntity entity)
{
dikePipingFailureMechanismEntityPersistor.InsertModel(entity.FailureMechanismEntities, model.PipingFailureMechanism);
-
- if (model.HydraulicBoundaryDatabase != null)
- {
- hydraulicLocationEntityPersistor.InsertModel(entity.HydraulicLocationEntities, model.HydraulicBoundaryDatabase);
- }
-
dikePipingFailureMechanismEntityPersistor.RemoveUnModifiedEntries(entity.FailureMechanismEntities);
- hydraulicLocationEntityPersistor.RemoveUnModifiedEntries(entity.HydraulicLocationEntities);
+ hydraulicLocationEntityPersistor.InsertModel(entity.HydraulicLocationEntities, model.HydraulicBoundaryDatabase);
referenceLinePersistor.InsertModel(entity.ReferenceLinePointEntities, model.ReferenceLine);
}
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/DikesPipingFailureMechanismEntityPersistor.cs
===================================================================
diff -u -r503a1871546f1694465c356bf06c167bc67740dd -r98df6e59fb589e5326b8f904dac98d402cb35b9c
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/DikesPipingFailureMechanismEntityPersistor.cs (.../DikesPipingFailureMechanismEntityPersistor.cs) (revision 503a1871546f1694465c356bf06c167bc67740dd)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/DikesPipingFailureMechanismEntityPersistor.cs (.../DikesPipingFailureMechanismEntityPersistor.cs) (revision 98df6e59fb589e5326b8f904dac98d402cb35b9c)
@@ -31,54 +31,13 @@
///
public class DikesPipingFailureMechanismEntityPersistor : FailureMechanismEntityPersistorBase
{
- private readonly PipingFailureMechanismEntityConverter converter;
-
///
/// New instance of .
///
/// The storage context.
/// Thrown when is null.
- public DikesPipingFailureMechanismEntityPersistor(IRingtoetsEntities ringtoetsContext) : base(ringtoetsContext) {
- converter = new PipingFailureMechanismEntityConverter();
+ public DikesPipingFailureMechanismEntityPersistor(IRingtoetsEntities ringtoetsContext) :
+ base(ringtoetsContext, new PipingFailureMechanismEntityConverter()) {
}
-
- ///
- /// Loads the as .
- ///
- /// to load from.
- /// The to load data in.
- /// Thrown when:
- /// - is null.
- /// - is null.
- ///
- public override void LoadModel(FailureMechanismEntity entity, PipingFailureMechanism pipingFailureMechanism)
- {
- if (entity == null)
- {
- throw new ArgumentNullException("entity");
- }
- if (pipingFailureMechanism == null)
- {
- throw new ArgumentNullException("pipingFailureMechanism");
- }
-
- if (entity.FailureMechanismType != (int) FailureMechanismType.DikesPipingFailureMechanism)
- {
- throw new ArgumentException(@"Incorrect modelType", "entity");
- }
-
- var model = ConvertEntityToModel(entity);
- pipingFailureMechanism.StorageId = model.StorageId;
- }
-
- protected override void ConvertModelToEntity(PipingFailureMechanism model, FailureMechanismEntity entity)
- {
- converter.ConvertModelToEntity(model, entity);
- }
-
- protected override PipingFailureMechanism ConvertEntityToModel(FailureMechanismEntity entity)
- {
- return converter.ConvertEntityToModel(entity);
- }
}
}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/FailureMechanismEntityPersistorBase.cs
===================================================================
diff -u -ra6371ac68897b69e2efd537fa29bb6564f50fdcf -r98df6e59fb589e5326b8f904dac98d402cb35b9c
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/FailureMechanismEntityPersistorBase.cs (.../FailureMechanismEntityPersistorBase.cs) (revision a6371ac68897b69e2efd537fa29bb6564f50fdcf)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/FailureMechanismEntityPersistorBase.cs (.../FailureMechanismEntityPersistorBase.cs) (revision 98df6e59fb589e5326b8f904dac98d402cb35b9c)
@@ -23,6 +23,7 @@
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
+using Application.Ringtoets.Storage.Converters;
using Application.Ringtoets.Storage.DbContext;
using Application.Ringtoets.Storage.Exceptions;
using Application.Ringtoets.Storage.Properties;
@@ -35,25 +36,55 @@
///
public abstract class FailureMechanismEntityPersistorBase where T : IFailureMechanism
{
- private readonly DbSet dbSet;
+ private readonly DbSet failureMechanismSet;
private readonly Dictionary insertedList = new Dictionary();
private readonly ICollection modifiedList = new List();
+ private readonly IEntityConverter converter;
+
///
/// New instance of .
///
/// The storage context.
+ /// An implementation of the to use in the persistor.
/// Thrown when is null.
- protected FailureMechanismEntityPersistorBase(IRingtoetsEntities ringtoetsContext)
+ protected FailureMechanismEntityPersistorBase(IRingtoetsEntities ringtoetsContext, IEntityConverter converter)
{
if (ringtoetsContext == null)
{
throw new ArgumentNullException("ringtoetsContext");
}
- dbSet = ringtoetsContext.FailureMechanismEntities;
+ failureMechanismSet = ringtoetsContext.FailureMechanismEntities;
+ this.converter = converter;
}
+
///
+ /// Loads the as .
+ ///
+ /// to load from.
+ /// The to load data in.
+ /// Thrown when:
+ /// - is null.
+ /// - is null.
+ ///
+ public void LoadModel(FailureMechanismEntity entity, IFailureMechanism pipingFailureMechanism)
+ {
+ if (entity == null)
+ {
+ throw new ArgumentNullException("entity");
+ }
+ if (pipingFailureMechanism == null)
+ {
+ throw new ArgumentNullException("pipingFailureMechanism");
+ }
+
+ var model = converter.ConvertEntityToModel(entity);
+
+ pipingFailureMechanism.StorageId = model.StorageId;
+ }
+
+ ///
/// Ensures that the is set as in the .
///
/// Collection where objects can be searched and added. Usually, this collection is a navigation property of a .
@@ -73,17 +104,16 @@
{
throw new ArgumentNullException("model");
}
- if (model.StorageId < 1)
- {
- InsertModel(parentNavigationProperty, model);
- return;
- }
-
if (parentNavigationProperty == null)
{
throw new ArgumentNullException("parentNavigationProperty");
}
+ if (model.StorageId < 1)
+ {
+ InsertModel(parentNavigationProperty, model);
+ return;
+ }
FailureMechanismEntity entity;
try
{
@@ -100,7 +130,7 @@
modifiedList.Add(entity);
- ConvertModelToEntity(model, entity);
+ converter.ConvertModelToEntity(model, entity);
}
///
@@ -123,7 +153,7 @@
parentNavigationProperty.Add(entity);
insertedList.Add(entity, model);
- ConvertModelToEntity(model, entity);
+ converter.ConvertModelToEntity(model, entity);
if (model.StorageId > 0)
{
@@ -132,34 +162,15 @@
}
///
- /// Loads a new model of type based on the .
- ///
- /// Database entity containing information for the new model.
- /// The assessment section to add the failure mechanism to.
- public abstract void LoadModel(FailureMechanismEntity entity, T dikeAssessmentSection);
-
- ///
/// All unmodified in will be removed.
///
/// List where objects can be searched. Usually, this collection is a navigation property of a .
/// Thrown when the is read-only.
public void RemoveUnModifiedEntries(ICollection parentNavigationProperty)
{
- var originalList = parentNavigationProperty.ToList();
- foreach (var u in modifiedList)
- {
- originalList.Remove(u);
- }
+ var untouchedModifiedList = parentNavigationProperty.Where(e => e.DikeAssessmentSectionEntityId > 0 && !modifiedList.Contains(e));
+ failureMechanismSet.RemoveRange(untouchedModifiedList);
- foreach (var toDelete in originalList)
- {
- // If id = 0, the entity is marked as inserted
- if (toDelete.FailureMechanismEntityId > 0)
- {
- dbSet.Remove(toDelete);
- }
- }
-
modifiedList.Clear();
}
@@ -174,8 +185,5 @@
}
insertedList.Clear();
}
-
- protected abstract void ConvertModelToEntity(T model, FailureMechanismEntity entity);
- protected abstract T ConvertEntityToModel(FailureMechanismEntity entity);
}
}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/HydraulicLocationEntityPersistor.cs
===================================================================
diff -u -r0b5ecd8a04803bce1ed8398053e9b7cb7404b886 -r98df6e59fb589e5326b8f904dac98d402cb35b9c
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/HydraulicLocationEntityPersistor.cs (.../HydraulicLocationEntityPersistor.cs) (revision 0b5ecd8a04803bce1ed8398053e9b7cb7404b886)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/HydraulicLocationEntityPersistor.cs (.../HydraulicLocationEntityPersistor.cs) (revision 98df6e59fb589e5326b8f904dac98d402cb35b9c)
@@ -36,7 +36,7 @@
///
public class HydraulicLocationEntityPersistor
{
- private readonly IRingtoetsEntities ringtoetsContext;
+ private readonly DbSet hydraulicLocationSet;
private readonly HydraulicLocationConverter converter;
private readonly Dictionary insertedList = new Dictionary();
@@ -54,7 +54,7 @@
throw new ArgumentNullException("ringtoetsContext");
}
- this.ringtoetsContext = ringtoetsContext;
+ hydraulicLocationSet = ringtoetsContext.HydraulicLocationEntities;
converter = new HydraulicLocationConverter();
}
@@ -86,9 +86,14 @@
{
if (model == null)
{
- throw new ArgumentNullException("model");
+ return;
}
+ if (parentNavigationProperty == null)
+ {
+ throw new ArgumentNullException("parentNavigationProperty");
+ }
+
foreach (var location in model.Locations)
{
if (location == null)
@@ -102,11 +107,6 @@
continue;
}
- if (parentNavigationProperty == null)
- {
- throw new ArgumentNullException("parentNavigationProperty");
- }
-
HydraulicLocationEntity entity;
try
{
@@ -126,6 +126,8 @@
converter.ConvertModelToEntity(location, entity);
}
+
+ RemoveUnModifiedEntries(parentNavigationProperty);
}
///
@@ -151,17 +153,19 @@
{
InsertLocation(parentNavigationProperty, location);
}
+
+ RemoveUnModifiedEntries(parentNavigationProperty);
}
///
/// Removes all entities from that are not marked as 'updated'.
///
/// List where objects can be searched.
/// Usually, this collection is a navigation property of a .
- public void RemoveUnModifiedEntries(ICollection parentNavigationProperty)
+ private void RemoveUnModifiedEntries(ICollection parentNavigationProperty)
{
var untouchedModifiedList = parentNavigationProperty.Where(e => e.HydraulicLocationEntityId > 0 && !modifiedList.Contains(e));
- ringtoetsContext.Set().RemoveRange(untouchedModifiedList);
+ hydraulicLocationSet.RemoveRange(untouchedModifiedList);
modifiedList.Clear();
}
@@ -187,14 +191,17 @@
var entity = new HydraulicLocationEntity();
parentNavigationProperty.Add(entity);
- insertedList.Add(entity, location);
converter.ConvertModelToEntity(location, entity);
if (location.StorageId > 0)
{
modifiedList.Add(entity);
}
+ else
+ {
+ insertedList.Add(entity, location);
+ }
}
}
}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/ProjectEntityPersistor.cs
===================================================================
diff -u -ra6371ac68897b69e2efd537fa29bb6564f50fdcf -r98df6e59fb589e5326b8f904dac98d402cb35b9c
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/ProjectEntityPersistor.cs (.../ProjectEntityPersistor.cs) (revision a6371ac68897b69e2efd537fa29bb6564f50fdcf)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/ProjectEntityPersistor.cs (.../ProjectEntityPersistor.cs) (revision 98df6e59fb589e5326b8f904dac98d402cb35b9c)
@@ -38,7 +38,7 @@
///
public class ProjectEntityPersistor
{
- private readonly DbSet dbSet;
+ private readonly DbSet projectEntitySet;
private readonly ProjectEntityConverter converter;
private readonly Dictionary insertedList = new Dictionary();
private readonly ICollection modifiedList = new List();
@@ -56,7 +56,7 @@
{
throw new ArgumentNullException("ringtoetsContext");
}
- dbSet = ringtoetsContext.ProjectEntities;
+ projectEntitySet = ringtoetsContext.ProjectEntities;
converter = new ProjectEntityConverter();
@@ -70,9 +70,28 @@
/// Thrown when there are more than one elements in the sequence.
public Project GetEntityAsModel()
{
- var entry = dbSet.SingleOrDefault();
+ var entry = projectEntitySet.SingleOrDefault();
+ if (entry == null)
+ {
+ return null;
+ }
+ var project = converter.ConvertEntityToModel(entry);
- return LoadModel(entry);
+ var nrOfItems = entry.DikeAssessmentSectionEntities.Count;
+ var assessmentSections = new object[nrOfItems];
+
+ foreach (var sectionEntity in entry.DikeAssessmentSectionEntities)
+ {
+ assessmentSections[sectionEntity.Order] = dikeAssessmentSectionEntityPersistor.LoadModel(sectionEntity);
+ }
+
+ // Add to items sorted
+ foreach (var assessmentSection in assessmentSections)
+ {
+ project.Items.Add(assessmentSection);
+ }
+
+ return project;
}
///
@@ -85,7 +104,23 @@
/// The parentNavigationProperty is read-only.
public void InsertModel(Project project)
{
- InsertModel(dbSet, project);
+ if (project == null)
+ {
+ throw new ArgumentNullException("project", @"Cannot update databaseSet when no project is set.");
+ }
+
+ var entity = new ProjectEntity();
+ projectEntitySet.Add(entity);
+ insertedList.Add(entity, project);
+
+ converter.ConvertModelToEntity(project, entity);
+
+ if (project.StorageId > 0)
+ {
+ modifiedList.Add(entity);
+ }
+
+ InsertChildren(project, entity);
}
///
@@ -109,7 +144,7 @@
ProjectEntity entity;
try
{
- entity = dbSet.SingleOrDefault(db => db.ProjectEntityId == model.StorageId);
+ entity = projectEntitySet.SingleOrDefault(db => db.ProjectEntityId == model.StorageId);
}
catch (InvalidOperationException exception)
{
@@ -130,8 +165,8 @@
///
public void RemoveUnModifiedEntries()
{
- var untouchedList = dbSet.ToList().Where(e => !modifiedList.Contains(e));
- dbSet.RemoveRange(untouchedList);
+ var untouchedList = projectEntitySet.ToList().Where(e => !modifiedList.Contains(e));
+ projectEntitySet.RemoveRange(untouchedList);
modifiedList.Clear();
}
@@ -145,52 +180,6 @@
dikeAssessmentSectionEntityPersistor.PerformPostSaveActions();
}
- private void InsertModel(DbSet parentNavigationProperty, Project project)
- {
- if (project == null)
- {
- throw new ArgumentNullException("project", @"Cannot update databaseSet when no project is set.");
- }
-
- var entity = new ProjectEntity();
- dbSet.Add(entity);
- insertedList.Add(entity, project);
-
- converter.ConvertModelToEntity(project, entity);
-
- if (project.StorageId > 0)
- {
- modifiedList.Add(entity);
- }
-
- InsertChildren(project, entity);
- }
-
- private Project LoadModel(ProjectEntity entity)
- {
- if (entity == null)
- {
- return null;
- }
- var project = converter.ConvertEntityToModel(entity);
-
- var nrOfItems = entity.DikeAssessmentSectionEntities.Count;
- var assessmentSections = new object[nrOfItems];
-
- foreach (var sectionEntity in entity.DikeAssessmentSectionEntities)
- {
- assessmentSections[sectionEntity.Order] = dikeAssessmentSectionEntityPersistor.LoadModel(sectionEntity);
- }
-
- // Add to items sorted
- foreach (var assessmentSection in assessmentSections)
- {
- project.Items.Add(assessmentSection);
- }
-
- return project;
- }
-
///
/// Updates the children of , in reference to , in the storage.
///
@@ -199,13 +188,10 @@
private void UpdateChildren(Project project, ProjectEntity entity)
{
var order = 0;
- foreach (var item in project.Items)
+ foreach (var item in project.Items.Where(i => i is DikeAssessmentSection).Cast())
{
- if (item is DikeAssessmentSection)
- {
- dikeAssessmentSectionEntityPersistor.UpdateModel(entity.DikeAssessmentSectionEntities, (DikeAssessmentSection) item, order);
- order++;
- }
+ dikeAssessmentSectionEntityPersistor.UpdateModel(entity.DikeAssessmentSectionEntities, item, order);
+ order++;
}
dikeAssessmentSectionEntityPersistor.RemoveUnModifiedEntries(entity.DikeAssessmentSectionEntities);
}
@@ -218,13 +204,10 @@
private void InsertChildren(Project project, ProjectEntity entity)
{
var order = 0;
- foreach (var item in project.Items)
+ foreach (var item in project.Items.Where(i => i is DikeAssessmentSection).Cast())
{
- if (item is DikeAssessmentSection)
- {
- dikeAssessmentSectionEntityPersistor.InsertModel(entity.DikeAssessmentSectionEntities, (DikeAssessmentSection) item, order);
- order++;
- }
+ dikeAssessmentSectionEntityPersistor.InsertModel(entity.DikeAssessmentSectionEntities, item, order);
+ order++;
}
dikeAssessmentSectionEntityPersistor.RemoveUnModifiedEntries(entity.DikeAssessmentSectionEntities);
}
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/ReferenceLinePersistor.cs
===================================================================
diff -u -r1d52c0ffc913d7803070bd9797d811a991b5c365 -r98df6e59fb589e5326b8f904dac98d402cb35b9c
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/ReferenceLinePersistor.cs (.../ReferenceLinePersistor.cs) (revision 1d52c0ffc913d7803070bd9797d811a991b5c365)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/ReferenceLinePersistor.cs (.../ReferenceLinePersistor.cs) (revision 98df6e59fb589e5326b8f904dac98d402cb35b9c)
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Data.Entity;
using System.Linq;
using Application.Ringtoets.Storage.Converters;
using Application.Ringtoets.Storage.DbContext;
@@ -10,21 +11,21 @@
public class ReferenceLinePersistor
{
private readonly ReferenceLineConverter converter;
- private readonly IRingtoetsEntities context;
+ private readonly DbSet referenceLineEntities;
///
/// Creates a new instance of .
///
- /// The storage context.
- /// Thrown when is null.
- public ReferenceLinePersistor(IRingtoetsEntities ringtoetsContext)
+ /// The storage context.
+ /// Thrown when is null.
+ public ReferenceLinePersistor(IRingtoetsEntities ringtoetsEntities)
{
- if (ringtoetsContext == null)
+ if (ringtoetsEntities == null)
{
- throw new ArgumentNullException("ringtoetsContext");
+ throw new ArgumentNullException("ringtoetsEntities");
}
- context = ringtoetsContext;
+ referenceLineEntities = ringtoetsEntities.ReferenceLinePointEntities;
converter = new ReferenceLineConverter();
}
@@ -44,7 +45,8 @@
if (entityCollection.Any())
{
- context.Set().RemoveRange(entityCollection);
+ referenceLineEntities.RemoveRange(entityCollection);
+ entityCollection.Clear();
}
if (referenceLine != null)
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/PipingFailureMechanismEntityConverterTest.cs
===================================================================
diff -u -rd242e89e13ef602facae6a1ef91660242bcef340 -r98df6e59fb589e5326b8f904dac98d402cb35b9c
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/PipingFailureMechanismEntityConverterTest.cs (.../PipingFailureMechanismEntityConverterTest.cs) (revision d242e89e13ef602facae6a1ef91660242bcef340)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/PipingFailureMechanismEntityConverterTest.cs (.../PipingFailureMechanismEntityConverterTest.cs) (revision 98df6e59fb589e5326b8f904dac98d402cb35b9c)
@@ -81,6 +81,26 @@
}
[Test]
+ public void ConvertEntityToModel_EntityWithIncorrectType_ReturnsEntityAsModel()
+ {
+ // Setup
+ PipingFailureMechanismEntityConverter converter = new PipingFailureMechanismEntityConverter();
+
+ const long storageId = 1234L;
+ FailureMechanismEntity entity = new FailureMechanismEntity
+ {
+ FailureMechanismEntityId = storageId,
+ FailureMechanismType = (int)FailureMechanismType.DikesMacrostabilityInwardsFailureMechanism,
+ };
+
+ // Call
+ TestDelegate test = () => converter.ConvertEntityToModel(entity);
+
+ // Assert
+ Assert.Throws(test);
+ }
+
+ [Test]
public void ConvertModelToEntity_NullModel_ThrowsArgumentNullException()
{
// Setup
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/ProjectEntityConverterTest.cs
===================================================================
diff -u -rd242e89e13ef602facae6a1ef91660242bcef340 -r98df6e59fb589e5326b8f904dac98d402cb35b9c
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/ProjectEntityConverterTest.cs (.../ProjectEntityConverterTest.cs) (revision d242e89e13ef602facae6a1ef91660242bcef340)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/ProjectEntityConverterTest.cs (.../ProjectEntityConverterTest.cs) (revision 98df6e59fb589e5326b8f904dac98d402cb35b9c)
@@ -117,14 +117,31 @@
ProjectEntity projectEntity = new ProjectEntity();
ProjectEntityConverter converter = new ProjectEntityConverter();
+ var timeStart = DateTime.Now.ToUniversalTime();
+ timeStart = Round(timeStart, false);
+
// Call
converter.ConvertModelToEntity(project, projectEntity);
+ var timeEnd = DateTime.Now.ToUniversalTime();
+ timeStart = Round(timeStart, true);
+
// Assert
+ Assert.IsTrue(projectEntity.LastUpdated.HasValue);
+ var lastUpdatedDateTime = new DateTime(1970, 1, 1).AddSeconds(projectEntity.LastUpdated.Value);
+
Assert.AreNotEqual(projectEntity, project);
Assert.AreEqual(storageId, projectEntity.ProjectEntityId);
Assert.AreEqual(description, projectEntity.Description);
- Assert.IsNotNull(projectEntity.LastUpdated);
+ Assert.GreaterOrEqual(timeEnd.Ticks, lastUpdatedDateTime.Ticks);
+ Assert.LessOrEqual(timeStart.Ticks, lastUpdatedDateTime.Ticks);
}
+
+ private static DateTime Round(DateTime timeStart, bool up)
+ {
+ var tickSecond = 10000000;
+ timeStart = new DateTime(((timeStart.Ticks + (up ? tickSecond : -tickSecond) / 2)/tickSecond)*tickSecond);
+ return timeStart;
+ }
}
}
\ No newline at end of file
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/DikeAssessmentSectionEntityPersistorTest.cs
===================================================================
diff -u -ra6371ac68897b69e2efd537fa29bb6564f50fdcf -r98df6e59fb589e5326b8f904dac98d402cb35b9c
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/DikeAssessmentSectionEntityPersistorTest.cs (.../DikeAssessmentSectionEntityPersistorTest.cs) (revision a6371ac68897b69e2efd537fa29bb6564f50fdcf)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/DikeAssessmentSectionEntityPersistorTest.cs (.../DikeAssessmentSectionEntityPersistorTest.cs) (revision 98df6e59fb589e5326b8f904dac98d402cb35b9c)
@@ -26,7 +26,6 @@
using Application.Ringtoets.Storage.DbContext;
using Application.Ringtoets.Storage.Exceptions;
using Application.Ringtoets.Storage.Persistors;
-using Application.Ringtoets.Storage.Test.DbContext;
using Application.Ringtoets.Storage.TestUtil;
using NUnit.Framework;
using Rhino.Mocks;
@@ -241,10 +240,11 @@
public void InsertModel_NullParentNavigationProperty_ThrowsArgumentNullException()
{
// Setup
- var ringtoetsEntities = mockRepository.StrictMock();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.Create(mockRepository);
+ mockRepository.ReplayAll();
+
DikeAssessmentSectionEntityPersistor persistor = new DikeAssessmentSectionEntityPersistor(ringtoetsEntities);
var dikeAssessmentSection = new DikeAssessmentSection();
- mockRepository.ReplayAll();
// Call
TestDelegate test = () => persistor.InsertModel(null, dikeAssessmentSection, 0);
@@ -279,7 +279,6 @@
const int norm = 30000;
var ringtoetsEntities = RingtoetsEntitiesHelper.Create(mockRepository);
-
mockRepository.ReplayAll();
ICollection parentNavigationProperty = new List();
@@ -410,10 +409,11 @@
public void UpdateModel_NullParentNavigationProperty_ThrowsArgumentNullException()
{
// Setup
- var ringtoetsEntities = mockRepository.StrictMock();
+ var ringtoetsEntities = RingtoetsEntitiesHelper.Create(mockRepository);
+ mockRepository.ReplayAll();
+
DikeAssessmentSectionEntityPersistor persistor = new DikeAssessmentSectionEntityPersistor(ringtoetsEntities);
var dikeAssessmentSection = new DikeAssessmentSection();
- mockRepository.ReplayAll();
// Call
TestDelegate test = () => persistor.UpdateModel(null, dikeAssessmentSection, 0);
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/HydraulicLocationEntityPersistorTest.cs
===================================================================
diff -u -r0b5ecd8a04803bce1ed8398053e9b7cb7404b886 -r98df6e59fb589e5326b8f904dac98d402cb35b9c
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/HydraulicLocationEntityPersistorTest.cs (.../HydraulicLocationEntityPersistorTest.cs) (revision 0b5ecd8a04803bce1ed8398053e9b7cb7404b886)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/HydraulicLocationEntityPersistorTest.cs (.../HydraulicLocationEntityPersistorTest.cs) (revision 98df6e59fb589e5326b8f904dac98d402cb35b9c)
@@ -22,11 +22,11 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
-using System.Data.Entity;
using System.Linq;
using Application.Ringtoets.Storage.DbContext;
using Application.Ringtoets.Storage.Exceptions;
using Application.Ringtoets.Storage.Persistors;
+using Application.Ringtoets.Storage.TestUtil;
using NUnit.Framework;
using Rhino.Mocks;
using Ringtoets.HydraRing.Data;
@@ -59,8 +59,7 @@
public void Constructor_EmptyDataSet_NewInstance()
{
// Setup
-
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
mockRepository.ReplayAll();
// Call
@@ -76,10 +75,11 @@
public void LoadModel_NullEntity_ThrowsArgumentNullException()
{
// Setup
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
- var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
mockRepository.ReplayAll();
+ var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
+
// Call
TestDelegate test = () => persistor.LoadModel(null);
@@ -93,10 +93,11 @@
public void LoadModel_ValidEntityValidModel_EntityAsModel()
{
// Setup
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
- var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
mockRepository.ReplayAll();
+ var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
+
const string name = "test";
const double designWaterLevel = 15.6;
const long locationId = 1300001;
@@ -136,11 +137,12 @@
public void InsertModel_NullParentNavigationProperty_ThrowsArgumentNullException()
{
// Setup
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
+ mockRepository.ReplayAll();
+
var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(1, "test", 1, 1));
- mockRepository.ReplayAll();
// Call
TestDelegate test = () => persistor.InsertModel(null, hydraulicBoundaryDatabase);
@@ -156,10 +158,11 @@
public void InsertModel_NullModel_DoesNotAddEntityInParentNavigationProperty()
{
// Setup
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
+ mockRepository.ReplayAll();
+
var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
var parentNavigationProperty = new List();
- mockRepository.ReplayAll();
// Call
TestDelegate test = () => persistor.InsertModel(parentNavigationProperty, null);
@@ -175,7 +178,9 @@
public void InsertModel_SingleEntityInParentNavigationPropertyHydraulicLocationWithSameStorageId_HydraulicLocationAsEntityInParentNavigationProperty()
{
// Setup
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
+ mockRepository.ReplayAll();
+
var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
const long storageId = 1234L;
@@ -197,8 +202,6 @@
HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
hydraulicBoundaryDatabase.Locations.Add(model);
- mockRepository.ReplayAll();
-
// Call
persistor.InsertModel(parentNavigationProperty, hydraulicBoundaryDatabase);
@@ -215,15 +218,15 @@
public void InsertModel_LocationNull_ThrowsArgumentNullException()
{
// Setup
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
+ mockRepository.ReplayAll();
+
var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
IList parentNavigationProperty = new List();
HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
hydraulicBoundaryDatabase.Locations.Add(null);
- mockRepository.ReplayAll();
-
// Call
TestDelegate test = () => persistor.InsertModel(parentNavigationProperty, hydraulicBoundaryDatabase);
@@ -237,14 +240,15 @@
public void InsertModel_LocationToBig_ThrowsOverflowException()
{
// Setup
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
+ mockRepository.ReplayAll();
+
var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
IList parentNavigationProperty = new List();
HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(1, "name", Double.PositiveInfinity, 1));
- mockRepository.ReplayAll();
// Call
TestDelegate test = () => persistor.InsertModel(parentNavigationProperty, hydraulicBoundaryDatabase);
@@ -260,10 +264,11 @@
{
// Setup
const long storageId = 1234L;
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
- var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
mockRepository.ReplayAll();
+ var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
+
HydraulicBoundaryLocation model = new HydraulicBoundaryLocation(13001, "test", 13, 52)
{
StorageId = storageId
@@ -283,21 +288,20 @@
}
[Test]
- public void UpdateModel_EmptyDatasetNullModel_ThrowsArgumentNullException()
+ public void UpdateModel_EmptyDatasetNullModel_DoesNotThrow()
{
// Setup
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
+ mockRepository.ReplayAll();
+
var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
IList parentNavigationProperty = new List();
- mockRepository.ReplayAll();
// Call
TestDelegate test = () => persistor.UpdateModel(parentNavigationProperty, null);
// Assert
- var exception = Assert.Throws(test);
- Assert.AreEqual("model", exception.ParamName);
- mockRepository.VerifyAll();
+ Assert.DoesNotThrow(test);
}
[Test]
@@ -306,10 +310,11 @@
// Setup
const long storageId = 1234L;
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
+ mockRepository.ReplayAll();
+
var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
IList parentNavigationProperty = new List();
- var expectedMessage = String.Format("Het object 'HydraulicLocationEntity' met id '{0}' is niet gevonden.", storageId);
HydraulicBoundaryLocation model = new HydraulicBoundaryLocation(13001, "test", 13, 52)
{
@@ -319,12 +324,11 @@
HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
hydraulicBoundaryDatabase.Locations.Add(model);
- mockRepository.ReplayAll();
-
// Call
TestDelegate test = () => persistor.UpdateModel(parentNavigationProperty, hydraulicBoundaryDatabase);
// Assert
+ var expectedMessage = String.Format("Het object 'HydraulicLocationEntity' met id '{0}' is niet gevonden.", storageId);
var exception = Assert.Throws(test);
Assert.AreEqual(expectedMessage, exception.Message);
mockRepository.VerifyAll();
@@ -335,8 +339,10 @@
{
// Setup
const long storageId = 1234L;
- var expectedMessage = String.Format("Het object 'HydraulicLocationEntity' met id '{0}' is niet gevonden.", storageId);
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
+
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
+ mockRepository.ReplayAll();
+
var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
IList parentNavigationProperty = new List
{
@@ -358,12 +364,11 @@
HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
hydraulicBoundaryDatabase.Locations.Add(model);
- mockRepository.ReplayAll();
-
// Call
TestDelegate test = () => persistor.UpdateModel(parentNavigationProperty, hydraulicBoundaryDatabase);
// Assert
+ var expectedMessage = String.Format("Het object 'HydraulicLocationEntity' met id '{0}' is niet gevonden.", storageId);
var exception = Assert.Throws(test);
Assert.AreEqual(expectedMessage, exception.Message);
mockRepository.VerifyAll();
@@ -375,7 +380,9 @@
// Setup
const long storageId = 1234L;
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
+ mockRepository.ReplayAll();
+
var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
IList parentNavigationProperty = new List
{
@@ -393,8 +400,6 @@
HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
hydraulicBoundaryDatabase.Locations.Add(model);
- mockRepository.ReplayAll();
-
// Call
persistor.UpdateModel(parentNavigationProperty, hydraulicBoundaryDatabase);
@@ -410,10 +415,11 @@
public void UpdateModel_NoStorageIdSet_InsertNewEntity()
{
// Setup
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
- var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
mockRepository.ReplayAll();
+ var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
+
IList parentNavigationProperty = new List();
HydraulicBoundaryLocation model = new HydraulicBoundaryLocation(13001, "test", 13, 52)
{
@@ -438,15 +444,15 @@
public void UpdateModel_LocationNull_ThrowsArgumentException()
{
// Setup
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
+ mockRepository.ReplayAll();
+
var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
IList parentNavigationProperty = new List();
HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
hydraulicBoundaryDatabase.Locations.Add(null);
- mockRepository.ReplayAll();
-
// Call
TestDelegate test = () => persistor.UpdateModel(parentNavigationProperty, hydraulicBoundaryDatabase);
@@ -460,15 +466,15 @@
public void UpdateModel_LocationToBig_ThrowsOverflowException()
{
// Setup
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
+ mockRepository.ReplayAll();
+
var persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
IList parentNavigationProperty = new List();
HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(1, "name", Double.PositiveInfinity, 1));
- mockRepository.ReplayAll();
-
// Call
TestDelegate test = () => persistor.UpdateModel(parentNavigationProperty, hydraulicBoundaryDatabase);
@@ -483,23 +489,23 @@
{
// Setup
const long storageId = 0L; // Newly inserted entities have Id = 0 untill they are saved
+
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
+ mockRepository.ReplayAll();
+
HydraulicLocationEntity entityToDelete = new HydraulicLocationEntity
{
HydraulicLocationEntityId = 4567L,
Name = "Entity to delete"
};
+ ringtoetsEntitiesMock.HydraulicLocationEntities.Add(entityToDelete);
+
ObservableCollection parentNavigationProperty = new ObservableCollection
{
entityToDelete
};
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
-
- var set = mockRepository.StrictMock>();
- ringtoetsEntitiesMock.Expect(c => c.Set()).Return(set);
- set.Expect(s => s.RemoveRange(Arg>.List.Equal(new[] { entityToDelete })));
-
mockRepository.ReplayAll();
HydraulicLocationEntityPersistor persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
@@ -509,7 +515,6 @@
// Call
persistor.UpdateModel(parentNavigationProperty, hydraulicBoundaryDatabase);
- persistor.RemoveUnModifiedEntries(parentNavigationProperty);
// Assert
Assert.AreEqual(2, parentNavigationProperty.Count);
@@ -521,105 +526,15 @@
}
[Test]
- public void RemoveUnModifiedEntries_MultipleEntitiesInParentNavigationPropertySingleModelStorageId_UpdatedHydraulicLocationmAsEntityAndOtherDeletedInDbSet()
+ public void PerformPostSaveActions_NoInserts_DoesNotThrowException()
{
// Setup
- const long storageId = 1234L;
- HydraulicLocationEntity entityToUpdate = new HydraulicLocationEntity
- {
- HydraulicLocationEntityId = storageId,
- };
- HydraulicLocationEntity entityToDelete = new HydraulicLocationEntity
- {
- HydraulicLocationEntityId = 4567L,
- };
-
- ObservableCollection parentNavigationProperty = new ObservableCollection
- {
- entityToDelete,
- entityToUpdate
- };
-
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
-
- var set = mockRepository.StrictMock>();
- ringtoetsEntitiesMock.Expect(c => c.Set()).Return(set);
- set.Expect(s => s.RemoveRange(Arg>.List.Equal(new[] { entityToDelete })));
-
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
mockRepository.ReplayAll();
HydraulicLocationEntityPersistor persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
- HydraulicBoundaryLocation hydraulicBoundaryLocation = new HydraulicBoundaryLocation(13001, "test", 13, 52)
- {
- StorageId = storageId
- };
- HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
- hydraulicBoundaryDatabase.Locations.Add(hydraulicBoundaryLocation);
-
- TestDelegate updateTest = () => persistor.UpdateModel(parentNavigationProperty, hydraulicBoundaryDatabase);
- Assert.DoesNotThrow(updateTest, "Precondition failed: Update should not throw exception.");
-
// Call
- persistor.RemoveUnModifiedEntries(parentNavigationProperty);
-
- // Assert
- Assert.AreEqual(2, parentNavigationProperty.Count);
- Assert.IsInstanceOf(entityToUpdate);
- Assert.AreEqual(storageId, entityToUpdate.HydraulicLocationEntityId);
-
- mockRepository.VerifyAll();
- }
-
- [Test]
- public void RemoveUnModifiedEntries_MultipleEntitiesInParentNavigationPropertyEmptyHydraulicLocation_EmptyDatabaseSet()
- {
- // Setup
- HydraulicLocationEntity firstEntityToDelete = new HydraulicLocationEntity
- {
- HydraulicLocationEntityId = 1234L
- };
- HydraulicLocationEntity secondEntityToDelete = new HydraulicLocationEntity
- {
- HydraulicLocationEntityId = 4567L
- };
- ObservableCollection parentNavigationProperty = new ObservableCollection
- {
- firstEntityToDelete,
- secondEntityToDelete
- };
-
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
- var set = mockRepository.StrictMock>();
- ringtoetsEntitiesMock.Expect(c => c.Set()).Return(set);
- set.Expect(s => s.RemoveRange(Arg>.List.Equal(parentNavigationProperty.ToList())));
- mockRepository.ReplayAll();
-
- HydraulicBoundaryLocation hydraulicBoundaryLocation = new HydraulicBoundaryLocation(13001, "test", 13, 52);
- var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
- hydraulicBoundaryDatabase.Locations.Add(hydraulicBoundaryLocation);
-
- HydraulicLocationEntityPersistor persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
-
- TestDelegate test = () => persistor.UpdateModel(parentNavigationProperty, hydraulicBoundaryDatabase);
- Assert.DoesNotThrow(test, "Precondition failed: UpdateModel");
-
- // Call
- persistor.RemoveUnModifiedEntries(parentNavigationProperty);
-
- // Assert
- mockRepository.VerifyAll();
- }
-
- [Test]
- public void PerformPostSaveActions_NoInserts_DoesNotThrowException()
- {
- // Setup
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
- HydraulicLocationEntityPersistor persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
- mockRepository.ReplayAll();
-
- // Call
TestDelegate test = () => persistor.PerformPostSaveActions();
// Assert
@@ -635,15 +550,11 @@
public void PerformPostSaveActions_MultipleModelsInsertedWithoutStorageId_ModelsWithStorageId(int numberOfInserts)
{
// Setup
- var insertedHydraulicLocationEntities = new List();
- var parentNavigationPropertyMock = mockRepository.StrictMock>();
- parentNavigationPropertyMock.Expect(m => m.Add(null)).IgnoreArguments().WhenCalled(x =>
- {
- var insertedDikeAssessmentSectionEntity = x.Arguments.GetValue(0);
- Assert.IsInstanceOf(insertedDikeAssessmentSectionEntity);
- insertedHydraulicLocationEntities.Add((HydraulicLocationEntity) insertedDikeAssessmentSectionEntity);
- }).Repeat.Times(numberOfInserts);
+ var ringtoetsEntitiesMock = RingtoetsEntitiesHelper.Create(mockRepository);
+ mockRepository.ReplayAll();
+ var parentNavigationProperty = new List();
+
IList hydraulicLocations = new List();
for (var i = 0; i < numberOfInserts; i++)
{
@@ -656,29 +567,27 @@
HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
hydraulicBoundaryDatabase.Locations.AddRange(hydraulicLocations);
- var ringtoetsEntitiesMock = mockRepository.StrictMock();
HydraulicLocationEntityPersistor persistor = new HydraulicLocationEntityPersistor(ringtoetsEntitiesMock);
- mockRepository.ReplayAll();
try
{
- persistor.UpdateModel(parentNavigationPropertyMock, hydraulicBoundaryDatabase);
+ persistor.UpdateModel(parentNavigationProperty, hydraulicBoundaryDatabase);
}
catch (Exception)
{
Assert.Fail("Precondition failed: persistor.UpdateModel");
}
// Call
- for (var i = 0; i < insertedHydraulicLocationEntities.Count; i++)
+ for (var i = 0; i < parentNavigationProperty.Count; i++)
{
- insertedHydraulicLocationEntities[i].HydraulicLocationEntityId = 1L + i;
+ parentNavigationProperty[i].HydraulicLocationEntityId = 1L + i;
}
persistor.PerformPostSaveActions();
// Assert
- Assert.AreEqual(hydraulicLocations.Count, insertedHydraulicLocationEntities.Count);
- foreach (var entity in insertedHydraulicLocationEntities)
+ Assert.AreEqual(hydraulicLocations.Count, parentNavigationProperty.Count);
+ foreach (var entity in parentNavigationProperty)
{
HydraulicBoundaryLocation insertedModel = hydraulicLocations.SingleOrDefault(x => x.StorageId == entity.HydraulicLocationEntityId);
Assert.IsNotNull(insertedModel);
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/ReferenceLinePersistorTest.cs
===================================================================
diff -u -r1d52c0ffc913d7803070bd9797d811a991b5c365 -r98df6e59fb589e5326b8f904dac98d402cb35b9c
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/ReferenceLinePersistorTest.cs (.../ReferenceLinePersistorTest.cs) (revision 1d52c0ffc913d7803070bd9797d811a991b5c365)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/ReferenceLinePersistorTest.cs (.../ReferenceLinePersistorTest.cs) (revision 98df6e59fb589e5326b8f904dac98d402cb35b9c)
@@ -5,6 +5,7 @@
using System.Linq;
using Application.Ringtoets.Storage.DbContext;
using Application.Ringtoets.Storage.Persistors;
+using Application.Ringtoets.Storage.TestUtil;
using Core.Common.Base.Geometry;
using NUnit.Framework;
using Rhino.Mocks;
@@ -23,15 +24,15 @@
// Assert
var parameter = Assert.Throws(call).ParamName;
- Assert.AreEqual("ringtoetsContext", parameter);
+ Assert.AreEqual("ringtoetsEntities", parameter);
}
[Test]
public void Constructor_WithContext_DoesNotThrow()
{
// Setup
var mocks = new MockRepository();
- var context = mocks.StrictMock();
+ var context = RingtoetsEntitiesHelper.Create(mocks);
mocks.ReplayAll();
// Call
@@ -47,7 +48,7 @@
{
// Setup
var mocks = new MockRepository();
- var context = mocks.StrictMock();
+ var context = RingtoetsEntitiesHelper.Create(mocks);
mocks.ReplayAll();
var persistor = new ReferenceLinePersistor(context);
@@ -66,7 +67,7 @@
{
// Setup
var mocks = new MockRepository();
- var context = mocks.StrictMock();
+ var context = RingtoetsEntitiesHelper.Create(mocks);
var entities = new List();
mocks.ReplayAll();
@@ -84,7 +85,7 @@
{
// Setup
var mocks = new MockRepository();
- var context = mocks.StrictMock();
+ var context = RingtoetsEntitiesHelper.Create(mocks);
var entities = new List();
mocks.ReplayAll();
@@ -109,6 +110,10 @@
public void InsertModel_WithNonEmptyEntityCollectionWithReferenceLine_EntityCollectionClearedAddsNewEntitiesToContext()
{
// Setup
+ var mocks = new MockRepository();
+ var context = RingtoetsEntitiesHelper.Create(mocks);
+ mocks.ReplayAll();
+
var entities = new List();
for (int i = 0; i < 3; i++)
{
@@ -118,14 +123,10 @@
});
}
- var mocks = new MockRepository();
- var context = mocks.StrictMock();
- var set = mocks.StrictMock>();
- context.Expect(c => c.Set()).Return(set);
- set.Expect(s => s.RemoveRange(entities)).WhenCalled(z => entities.Clear());
+ context.ReferenceLinePointEntities.Add(entities[0]);
+ context.ReferenceLinePointEntities.Add(entities[1]);
+ context.ReferenceLinePointEntities.Add(new ReferenceLinePointEntity());
- mocks.ReplayAll();
-
var persistor = new ReferenceLinePersistor(context);
var referenceLine = new ReferenceLine();
referenceLine.SetGeometry(new[]
@@ -140,6 +141,7 @@
// Assert
AssertCreatedEntities(entities, referenceLine);
+ Assert.AreEqual(1, context.ReferenceLinePointEntities.Count());
mocks.VerifyAll();
}
@@ -148,7 +150,7 @@
{
// Setup
var mocks = new MockRepository();
- var context = mocks.StrictMock();
+ var context = RingtoetsEntitiesHelper.Create(mocks);
mocks.ReplayAll();
var persistor = new ReferenceLinePersistor(context);
@@ -167,7 +169,7 @@
{
// Setup
var mocks = new MockRepository();
- var context = mocks.StrictMock();
+ var context = RingtoetsEntitiesHelper.Create(mocks);
mocks.ReplayAll();
var entities = new List();
@@ -186,7 +188,7 @@
{
// Setup
var mocks = new MockRepository();
- var context = mocks.StrictMock();
+ var context = RingtoetsEntitiesHelper.Create(mocks);
mocks.ReplayAll();
var entities = new List
@@ -225,7 +227,7 @@
{
// Setup
var mocks = new MockRepository();
- var context = mocks.StrictMock();
+ var context = RingtoetsEntitiesHelper.Create(mocks);
mocks.ReplayAll();
var entities = new List
@@ -259,7 +261,7 @@
mocks.VerifyAll();
}
- private void AssertCreatedEntities(List entities, ReferenceLine referenceLine)
+ private void AssertCreatedEntities(IList entities, ReferenceLine referenceLine)
{
Assert.AreEqual(entities.Count, referenceLine.Points.Count());
for (int i = 0; i < entities.Count; i++)
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/Application.Ringtoets.Storage.TestUtil.csproj
===================================================================
diff -u -ra6371ac68897b69e2efd537fa29bb6564f50fdcf -r98df6e59fb589e5326b8f904dac98d402cb35b9c
--- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/Application.Ringtoets.Storage.TestUtil.csproj (.../Application.Ringtoets.Storage.TestUtil.csproj) (revision a6371ac68897b69e2efd537fa29bb6564f50fdcf)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/Application.Ringtoets.Storage.TestUtil.csproj (.../Application.Ringtoets.Storage.TestUtil.csproj) (revision 98df6e59fb589e5326b8f904dac98d402cb35b9c)
@@ -61,7 +61,6 @@
-
Fisheye: Tag 98df6e59fb589e5326b8f904dac98d402cb35b9c refers to a dead (removed) revision in file `Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/DatabaseSetHelper.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsEntitiesHelper.cs
===================================================================
diff -u -ra6371ac68897b69e2efd537fa29bb6564f50fdcf -r98df6e59fb589e5326b8f904dac98d402cb35b9c
--- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsEntitiesHelper.cs (.../RingtoetsEntitiesHelper.cs) (revision a6371ac68897b69e2efd537fa29bb6564f50fdcf)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsEntitiesHelper.cs (.../RingtoetsEntitiesHelper.cs) (revision 98df6e59fb589e5326b8f904dac98d402cb35b9c)
@@ -4,19 +4,21 @@
namespace Application.Ringtoets.Storage.TestUtil
{
- static public class RingtoetsEntitiesHelper {
+ static public class RingtoetsEntitiesHelper
+ {
public static IRingtoetsEntities Create(MockRepository mockRepository)
{
var ringtoetsEntities = mockRepository.Stub();
var pSet = DbTestSet.GetDbTestSet(new ObservableCollection());
var hlSet = DbTestSet.GetDbTestSet(new ObservableCollection());
var fmSet = DbTestSet.GetDbTestSet(new ObservableCollection());
var dasSet = DbTestSet.GetDbTestSet(new ObservableCollection());
+ var rlpSet = DbTestSet.GetDbTestSet(new ObservableCollection());
ringtoetsEntities.Stub(r => r.ProjectEntities).Return(pSet);
- ringtoetsEntities.Stub(r => r.Set()).Return(hlSet);
+ ringtoetsEntities.Stub(r => r.HydraulicLocationEntities).Return(hlSet);
ringtoetsEntities.Stub(r => r.FailureMechanismEntities).Return(fmSet);
- ringtoetsEntities.Stub(r => r.Set()).Return(dasSet);
ringtoetsEntities.Stub(r => r.DikeAssessmentSectionEntities).Return(dasSet);
+ ringtoetsEntities.Stub(r => r.ReferenceLinePointEntities).Return(rlpSet);
return ringtoetsEntities;
}
}