Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/DikeAssessmentSectionEntityConverter.cs
===================================================================
diff -u -r92a966a0a5ae5144b90b89be0cdf30c5eea25d7d -rbd8a3e95f0145815fa6724a162404a76c9dc9f5a
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/DikeAssessmentSectionEntityConverter.cs (.../DikeAssessmentSectionEntityConverter.cs) (revision 92a966a0a5ae5144b90b89be0cdf30c5eea25d7d)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/DikeAssessmentSectionEntityConverter.cs (.../DikeAssessmentSectionEntityConverter.cs) (revision bd8a3e95f0145815fa6724a162404a76c9dc9f5a)
@@ -36,24 +36,26 @@
/// Converts to .
///
/// The to convert.
+ /// The to obtain the model.
/// A new instance of , based on the properties of .
- /// Thrown when is null.
- public DikeAssessmentSection ConvertEntityToModel(DikeAssessmentSectionEntity entity)
+ /// Thrown when or is null.
+ public DikeAssessmentSection ConvertEntityToModel(DikeAssessmentSectionEntity entity, Func model)
{
if (entity == null)
{
throw new ArgumentNullException("entity");
}
- var dikeAssessmentSection = new DikeAssessmentSection
+
+ if (model() == null)
{
- StorageId = entity.DikeAssessmentSectionEntityId,
- Name = entity.Name ?? string.Empty,
- FailureMechanismContribution =
- {
- Norm = entity.Norm
- }
- };
+ throw new ArgumentNullException("model");
+ }
+ var dikeAssessmentSection = model();
+ dikeAssessmentSection.StorageId = entity.DikeAssessmentSectionEntityId;
+ dikeAssessmentSection.Name = entity.Name ?? string.Empty;
+ dikeAssessmentSection.FailureMechanismContribution.Norm = entity.Norm;
+
if (entity.HydraulicDatabaseLocation != null && entity.HydraulicDatabaseVersion != null)
{
dikeAssessmentSection.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/FailureMechanismEntityConverter.cs
===================================================================
diff -u -r2e520a68a32290ef4d8c89a5520227c3084612db -rbd8a3e95f0145815fa6724a162404a76c9dc9f5a
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/FailureMechanismEntityConverter.cs (.../FailureMechanismEntityConverter.cs) (revision 2e520a68a32290ef4d8c89a5520227c3084612db)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/FailureMechanismEntityConverter.cs (.../FailureMechanismEntityConverter.cs) (revision bd8a3e95f0145815fa6724a162404a76c9dc9f5a)
@@ -26,16 +26,25 @@
namespace Application.Ringtoets.Storage.Converters
{
+ ///
+ /// Converter for to
+ /// and to .
+ ///
public class FailureMechanismEntityConverter : IEntityConverter where T : IFailureMechanism
{
- public T ConvertEntityToModel(FailureMechanismEntity entity)
+ public T ConvertEntityToModel(FailureMechanismEntity entity, Func model)
{
if (entity == null)
{
throw new ArgumentNullException("entity");
}
- T failureMechanism = Activator.CreateInstance();
+ if (model() == null)
+ {
+ throw new ArgumentNullException("model");
+ }
+
+ T failureMechanism = model();
failureMechanism.StorageId = entity.FailureMechanismEntityId;
return failureMechanism;
@@ -47,11 +56,21 @@
{
throw new ArgumentNullException("modelObject");
}
+
+ if (entity == null)
+ {
+ throw new ArgumentNullException("entity");
+ }
+
entity.FailureMechanismEntityId = modelObject.StorageId;
if (modelObject is PipingFailureMechanism)
{
- entity.FailureMechanismType = (int)FailureMechanismType.DikesPipingFailureMechanism;
+ entity.FailureMechanismType = (int) FailureMechanismType.DikesPipingFailureMechanism;
}
+ else
+ {
+ throw new ArgumentException("Incorrect modelType", "entity");
+ }
}
}
}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/IEntityConverter.cs
===================================================================
diff -u -r4512af7782ee31b36941bb280b54d9da2953dd71 -rbd8a3e95f0145815fa6724a162404a76c9dc9f5a
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/IEntityConverter.cs (.../IEntityConverter.cs) (revision 4512af7782ee31b36941bb280b54d9da2953dd71)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/IEntityConverter.cs (.../IEntityConverter.cs) (revision bd8a3e95f0145815fa6724a162404a76c9dc9f5a)
@@ -19,6 +19,7 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
using Core.Common.Base.Storage;
namespace Application.Ringtoets.Storage.Converters
@@ -32,8 +33,9 @@
/// Converts to .
///
/// The to convert.
+ /// The to obtain the model.
/// A new instance of , based on the properties of .
- TModel ConvertEntityToModel(TEntity entity);
+ TModel ConvertEntityToModel(TEntity entity, Func model);
///
/// Converts to .
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/ProjectEntityConverter.cs
===================================================================
diff -u -r4512af7782ee31b36941bb280b54d9da2953dd71 -rbd8a3e95f0145815fa6724a162404a76c9dc9f5a
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/ProjectEntityConverter.cs (.../ProjectEntityConverter.cs) (revision 4512af7782ee31b36941bb280b54d9da2953dd71)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/ProjectEntityConverter.cs (.../ProjectEntityConverter.cs) (revision bd8a3e95f0145815fa6724a162404a76c9dc9f5a)
@@ -35,20 +35,25 @@
/// Converts to .
///
/// The to convert.
+ /// The to obtain the model.
/// A new instance of , based on the properties of .
- /// Thrown when is null.
- public Project ConvertEntityToModel(ProjectEntity entity)
+ /// Thrown when or is null.
+ public Project ConvertEntityToModel(ProjectEntity entity, Func model)
{
if (entity == null)
{
throw new ArgumentNullException("entity");
}
- var project = new Project
+
+ if (model() == null)
{
- StorageId = entity.ProjectEntityId,
- Description = entity.Description
- };
+ throw new ArgumentNullException("model");
+ }
+ var project = model();
+ project.StorageId = entity.ProjectEntityId;
+ project.Description = entity.Description;
+
return project;
}
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/DikeAssessmentSectionEntityPersistor.cs
===================================================================
diff -u -r8d0030e18870473808b3606acef2803119ecfc98 -rbd8a3e95f0145815fa6724a162404a76c9dc9f5a
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/DikeAssessmentSectionEntityPersistor.cs (.../DikeAssessmentSectionEntityPersistor.cs) (revision 8d0030e18870473808b3606acef2803119ecfc98)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/DikeAssessmentSectionEntityPersistor.cs (.../DikeAssessmentSectionEntityPersistor.cs) (revision bd8a3e95f0145815fa6724a162404a76c9dc9f5a)
@@ -69,16 +69,15 @@
///
/// The to load.
/// A new instance of , based on the properties of .
- public DikeAssessmentSection LoadModel(DikeAssessmentSectionEntity entity)
+ public DikeAssessmentSection LoadModel(DikeAssessmentSectionEntity entity, Func model)
{
- var dikeAssessmentSection = converter.ConvertEntityToModel(entity);
+ var dikeAssessmentSection = converter.ConvertEntityToModel(entity, model);
foreach (var failureMechanismEntity in entity.FailureMechanismEntities)
{
if (failureMechanismEntity.FailureMechanismType == (int) FailureMechanismType.DikesPipingFailureMechanism)
{
- var failureMechanismModel = dikePipingFailureMechanismEntityPersistor.LoadModel(failureMechanismEntity);
- dikeAssessmentSection.PipingFailureMechanism.StorageId = failureMechanismModel.StorageId;
+ dikePipingFailureMechanismEntityPersistor.LoadModel(failureMechanismEntity, () => dikeAssessmentSection.PipingFailureMechanism);
}
}
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/DikesPipingFailureMechanismEntityPersistor.cs
===================================================================
diff -u -r8d0030e18870473808b3606acef2803119ecfc98 -rbd8a3e95f0145815fa6724a162404a76c9dc9f5a
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/DikesPipingFailureMechanismEntityPersistor.cs (.../DikesPipingFailureMechanismEntityPersistor.cs) (revision 8d0030e18870473808b3606acef2803119ecfc98)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/DikesPipingFailureMechanismEntityPersistor.cs (.../DikesPipingFailureMechanismEntityPersistor.cs) (revision bd8a3e95f0145815fa6724a162404a76c9dc9f5a)
@@ -21,6 +21,7 @@
using System;
using Application.Ringtoets.Storage.DbContext;
+using Ringtoets.Common.Data;
using Ringtoets.Piping.Data;
namespace Application.Ringtoets.Storage.Persistors
@@ -41,22 +42,28 @@
/// Loads the as .
///
/// to load from.
+ /// The to obtain the model.
/// Thrown when:
/// - is null.
///
/// Thrown when is not of type .
- public override PipingFailureMechanism LoadModel(FailureMechanismEntity entity)
+ public override PipingFailureMechanism LoadModel(FailureMechanismEntity entity, Func model)
{
if (entity == null)
{
throw new ArgumentNullException("entity");
}
+ if (model() == null)
+ {
+ throw new ArgumentNullException("model");
+ }
+
if (entity.FailureMechanismType != (int) FailureMechanismType.DikesPipingFailureMechanism)
{
throw new ArgumentException("Incorrect modelType", "entity");
}
- return base.LoadModel(entity);
+ return base.LoadModel(entity, model);
}
}
}
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/FailureMechanismEntityPersistorBase.cs
===================================================================
diff -u -r2e520a68a32290ef4d8c89a5520227c3084612db -rbd8a3e95f0145815fa6724a162404a76c9dc9f5a
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/FailureMechanismEntityPersistorBase.cs (.../FailureMechanismEntityPersistorBase.cs) (revision 2e520a68a32290ef4d8c89a5520227c3084612db)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/FailureMechanismEntityPersistorBase.cs (.../FailureMechanismEntityPersistorBase.cs) (revision bd8a3e95f0145815fa6724a162404a76c9dc9f5a)
@@ -136,9 +136,9 @@
}
}
- public virtual T LoadModel(FailureMechanismEntity entity)
+ public virtual T LoadModel(FailureMechanismEntity entity, Func model)
{
- return converter.ConvertEntityToModel(entity);
+ return converter.ConvertEntityToModel(entity, model);
}
public virtual void UpdateChildren(T model, FailureMechanismEntity entity) { }
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/IPersistor.cs
===================================================================
diff -u -rd180f991b1e2664695dc4e98118e3159256fe3cd -rbd8a3e95f0145815fa6724a162404a76c9dc9f5a
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/IPersistor.cs (.../IPersistor.cs) (revision d180f991b1e2664695dc4e98118e3159256fe3cd)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/IPersistor.cs (.../IPersistor.cs) (revision bd8a3e95f0145815fa6724a162404a76c9dc9f5a)
@@ -19,6 +19,7 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
using System.Collections.Generic;
using System.Data.Entity;
using Application.Ringtoets.Storage.DbContext;
@@ -64,8 +65,9 @@
/// Loads the as .
///
/// The to load.
+ /// The to obtain the model.
/// A new instance of , based on the properties of .
- TModel LoadModel(TEntity entity);
+ TModel LoadModel(TEntity entity, Func model);
///
/// Updates the children of , in reference to , in the storage.
Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/ProjectEntityPersistor.cs
===================================================================
diff -u -re6314b0eda3a1b258c4ce336ac1ddd3ada77970b -rbd8a3e95f0145815fa6724a162404a76c9dc9f5a
--- Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/ProjectEntityPersistor.cs (.../ProjectEntityPersistor.cs) (revision e6314b0eda3a1b258c4ce336ac1ddd3ada77970b)
+++ Application/Ringtoets/src/Application.Ringtoets.Storage/Persistors/ProjectEntityPersistor.cs (.../ProjectEntityPersistor.cs) (revision bd8a3e95f0145815fa6724a162404a76c9dc9f5a)
@@ -74,7 +74,7 @@
{
var entry = dbSet.SingleOrDefault();
- return LoadModel(entry);
+ return LoadModel(entry, () => new Project());
}
///
@@ -187,20 +187,20 @@
dikeAssessmentSectionEntityPersistor.PerformPostSaveActions();
}
- public Project LoadModel(ProjectEntity entity)
+ public Project LoadModel(ProjectEntity entity, Func model)
{
if (entity == null)
{
return null;
}
- var project = converter.ConvertEntityToModel(entity);
+ var project = converter.ConvertEntityToModel(entity, model);
var nrOfItems = entity.DikeAssessmentSectionEntities.Count;
var assessmentSections = new object[nrOfItems];
foreach (var sectionEntity in entity.DikeAssessmentSectionEntities)
{
- assessmentSections[sectionEntity.Order] = dikeAssessmentSectionEntityPersistor.LoadModel(sectionEntity);
+ assessmentSections[sectionEntity.Order] = dikeAssessmentSectionEntityPersistor.LoadModel(sectionEntity, () => new DikeAssessmentSection());
}
// Add to items sorted
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Application.Ringtoets.Storage.Test.csproj
===================================================================
diff -u -r2ae1c9433c3c28b32105b9778b682b5e512a0f00 -rbd8a3e95f0145815fa6724a162404a76c9dc9f5a
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Application.Ringtoets.Storage.Test.csproj (.../Application.Ringtoets.Storage.Test.csproj) (revision 2ae1c9433c3c28b32105b9778b682b5e512a0f00)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Application.Ringtoets.Storage.Test.csproj (.../Application.Ringtoets.Storage.Test.csproj) (revision bd8a3e95f0145815fa6724a162404a76c9dc9f5a)
@@ -81,6 +81,7 @@
+
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/DikeAssessmentSectionEntityConverterTest.cs
===================================================================
diff -u -ra87d1792bac08f4ad2b1a5c8eedffe0d5650aca8 -rbd8a3e95f0145815fa6724a162404a76c9dc9f5a
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/DikeAssessmentSectionEntityConverterTest.cs (.../DikeAssessmentSectionEntityConverterTest.cs) (revision a87d1792bac08f4ad2b1a5c8eedffe0d5650aca8)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/DikeAssessmentSectionEntityConverterTest.cs (.../DikeAssessmentSectionEntityConverterTest.cs) (revision bd8a3e95f0145815fa6724a162404a76c9dc9f5a)
@@ -22,20 +22,45 @@
[Test]
public void ConvertEntityToModel_NullEntity_ThrowsArgumentNullException()
{
- // SetUp
+ // Setup
DikeAssessmentSectionEntityConverter converter = new DikeAssessmentSectionEntityConverter();
// Call
- TestDelegate test = () => converter.ConvertEntityToModel(null);
+ TestDelegate test = () => converter.ConvertEntityToModel(null, () => new DikeAssessmentSection());
// Assert
Assert.Throws(test);
}
[Test]
+ public void ConvertEntityToModel_ValidDikeAssessmentSectionEntityNullModel_ThrowsArgumentNullException()
+ {
+ // Setup
+ const long storageId = 1234L;
+ const long projectId = 1L;
+ const int norm = 30000;
+ const string name = "test";
+ DikeAssessmentSectionEntity dikeAssessmentSectionEntity = new DikeAssessmentSectionEntity()
+ {
+ DikeAssessmentSectionEntityId = storageId,
+ Name = name,
+ ProjectEntityId = projectId,
+ Norm = norm
+ };
+
+ DikeAssessmentSectionEntityConverter converter = new DikeAssessmentSectionEntityConverter();
+
+ // Call
+ TestDelegate test = () => converter.ConvertEntityToModel(dikeAssessmentSectionEntity, () => null);
+
+ // Assert
+ Assert.Throws(test);
+ }
+
+ [Test]
public void ConvertEntityToModel_ValidDikeAssessmentSectionEntity_ReturnsTheDikeAssessmentSectionEntityAsDikeAssessmentSection()
{
- // SetUp
+ // Setup
const long storageId = 1234L;
const long projectId = 1L;
const int norm = 30000;
@@ -50,7 +75,7 @@
DikeAssessmentSectionEntityConverter converter = new DikeAssessmentSectionEntityConverter();
// Call
- DikeAssessmentSection assessmentSection = converter.ConvertEntityToModel(dikeAssessmentSectionEntity);
+ DikeAssessmentSection assessmentSection = converter.ConvertEntityToModel(dikeAssessmentSectionEntity, () => new DikeAssessmentSection());
// Assert
Assert.AreNotEqual(dikeAssessmentSectionEntity, assessmentSection);
@@ -62,7 +87,7 @@
[Test]
public void ConvertModelToEntity_NullEntity_ThrowsArgumentNullException()
{
- // SetUp
+ // Setup
DikeAssessmentSectionEntityConverter converter = new DikeAssessmentSectionEntityConverter();
DikeAssessmentSection dikeAssessmentSection = new DikeAssessmentSection();
@@ -76,7 +101,7 @@
[Test]
public void ConvertModelToEntity_NullModel_ThrowsArgumentNullException()
{
- // SetUp
+ // Setup
DikeAssessmentSectionEntityConverter converter = new DikeAssessmentSectionEntityConverter();
DikeAssessmentSectionEntity dikeAssessmentSectionEntity = new DikeAssessmentSectionEntity();
@@ -90,7 +115,7 @@
[Test]
public void ConvertModelToEntity_ValidDikeAssessmentSection_UpdatesTheDikeAssessmentSectionAsDikeAssessmentSectionEntity()
{
- // SetUp
+ // Setup
const long storageId = 1234L;
const long projectId = 1L;
const int norm = 30000;
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/FailureMechanismEntityConverterTest.cs
===================================================================
diff -u
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/FailureMechanismEntityConverterTest.cs (revision 0)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/FailureMechanismEntityConverterTest.cs (revision bd8a3e95f0145815fa6724a162404a76c9dc9f5a)
@@ -0,0 +1,168 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using Application.Ringtoets.Storage.Converters;
+using Application.Ringtoets.Storage.DbContext;
+using NUnit.Framework;
+using Rhino.Mocks;
+using Ringtoets.Common.Data;
+using Ringtoets.Common.Data.Contribution;
+using Ringtoets.Piping.Data;
+
+namespace Application.Ringtoets.Storage.Test.Converters
+{
+ [TestFixture]
+ public class FailureMechanismEntityConverterTest
+ {
+ [Test]
+ public void DefaultConstructor_Always_NewFailureMechanismEntityConverter()
+ {
+ // Call
+ FailureMechanismEntityConverter converter = new FailureMechanismEntityConverter();
+
+ // Assert
+ Assert.IsInstanceOf>(converter);
+ }
+
+ [Test]
+ public void ConvertEntityToModel_NullEntity_ThrowsArgumentNullException()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var failureMechanism = mocks.Stub();
+ FailureMechanismEntityConverter converter = new FailureMechanismEntityConverter();
+ mocks.ReplayAll();
+
+ // Call
+ TestDelegate test = () => converter.ConvertEntityToModel(null, () => failureMechanism);
+
+ // Assert
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("entity", exception.ParamName);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void ConvertEntityToModel_ValidEntityNullModel_ThrowsArgumentNullException()
+ {
+ // Setup
+ var entity = new FailureMechanismEntity();
+ FailureMechanismEntityConverter converter = new FailureMechanismEntityConverter();
+
+ // Call
+ TestDelegate test = () => converter.ConvertEntityToModel(entity, () => null);
+
+ // Assert
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("model", exception.ParamName);
+ }
+
+ [Test]
+ public void ConvertEntityToModel_ValidEntityValidModel_ReturnsEntityAsModel()
+ {
+ // Setup
+ FailureMechanismEntityConverter converter = new FailureMechanismEntityConverter();
+
+ const long storageId = 1234L;
+ FailureMechanismEntity entity = new FailureMechanismEntity
+ {
+ FailureMechanismEntityId = storageId,
+ FailureMechanismType = (int)FailureMechanismType.DikesPipingFailureMechanism,
+ };
+
+ PipingFailureMechanism failureMechanism = new PipingFailureMechanism();
+
+ // Call
+ converter.ConvertEntityToModel(entity, () => failureMechanism);
+
+ // Assert
+ Assert.AreEqual(entity.FailureMechanismEntityId, failureMechanism.StorageId);
+ }
+
+ [Test]
+ public void ConvertModelToEntity_NullModel_ThrowsArgumentNullException()
+ {
+ // Setup
+ FailureMechanismEntityConverter converter = new FailureMechanismEntityConverter();
+
+ // Call
+ TestDelegate test = () => converter.ConvertModelToEntity(null, new FailureMechanismEntity());
+
+ // Assert
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("modelObject", exception.ParamName);
+ }
+
+ [Test]
+ public void ConvertModelToEntity_NullEntity_ThrowsArgumentNullException()
+ {
+ // Setup
+ FailureMechanismEntityConverter converter = new FailureMechanismEntityConverter();
+
+ // Call
+ TestDelegate test = () => converter.ConvertModelToEntity(new PipingFailureMechanism(), null);
+
+ // Assert
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("entity", exception.ParamName);
+ }
+
+ [Test]
+ public void ConvertModelToEntity_NotDikesPipingFailureMechanismType_ThrowsArgumentException()
+ {
+ // Setup
+ FailureMechanismEntityConverter converter = new FailureMechanismEntityConverter();
+
+ var entity = new FailureMechanismEntity()
+ {
+ FailureMechanismType = (int) FailureMechanismType.DikesAsphaltRevetmentFailureMechanism
+ };
+
+ // Call
+ TestDelegate test = () => converter.ConvertModelToEntity(new OtherFailureMechanism(), entity);
+
+ // Assert
+ Assert.Throws(test);
+ }
+
+ [Test]
+ public void ConvertModelToEntity_ValidModelValidEntity_ReturnsModelAsEntity()
+ {
+ // Setup
+ FailureMechanismEntityConverter converter = new FailureMechanismEntityConverter();
+
+ const long storageId = 1234L;
+ var entity = new FailureMechanismEntity();
+
+ var model = new PipingFailureMechanism
+ {
+ StorageId = storageId
+ };
+
+ // Call
+ converter.ConvertModelToEntity(model, entity);
+
+ // Assert
+ Assert.AreEqual(model.StorageId, entity.FailureMechanismEntityId);
+ }
+ }
+}
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/ProjectEntityConverterTest.cs
===================================================================
diff -u -r4adf3910b91fba2fe6e7f7766836082046ab769a -rbd8a3e95f0145815fa6724a162404a76c9dc9f5a
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/ProjectEntityConverterTest.cs (.../ProjectEntityConverterTest.cs) (revision 4adf3910b91fba2fe6e7f7766836082046ab769a)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/ProjectEntityConverterTest.cs (.../ProjectEntityConverterTest.cs) (revision bd8a3e95f0145815fa6724a162404a76c9dc9f5a)
@@ -26,13 +26,34 @@
ProjectEntityConverter converter = new ProjectEntityConverter();
// Call
- TestDelegate test = () => converter.ConvertEntityToModel(null);
+ TestDelegate test = () => converter.ConvertEntityToModel(null, () => new Project());
// Assert
Assert.Throws(test);
}
[Test]
+ public void ConvertEntityToModel_ValidProjectEntityNullModel_ThrowsArgumentNullException()
+ {
+ // SetUp
+ const long storageId = 1234L;
+ const string description = "Description";
+ ProjectEntity projectEntity = new ProjectEntity()
+ {
+ ProjectEntityId = storageId,
+ Description = description
+ };
+
+ ProjectEntityConverter converter = new ProjectEntityConverter();
+
+ // Call
+ TestDelegate test = () => converter.ConvertEntityToModel(projectEntity, () => null);
+
+ // Assert
+ Assert.Throws(test);
+ }
+
+ [Test]
public void ConvertEntityToModel_ValidProjectEntity_ReturnsTheProjectEntityAsProject()
{
// SetUp
@@ -46,7 +67,7 @@
ProjectEntityConverter converter = new ProjectEntityConverter();
// Call
- Project project = converter.ConvertEntityToModel(projectEntity);
+ Project project = converter.ConvertEntityToModel(projectEntity, () => new Project());
// Assert
Assert.AreNotEqual(projectEntity, project);
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/DikeAssessmentSectionEntityPersistorTest.cs
===================================================================
diff -u -re6314b0eda3a1b258c4ce336ac1ddd3ada77970b -rbd8a3e95f0145815fa6724a162404a76c9dc9f5a
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/DikeAssessmentSectionEntityPersistorTest.cs (.../DikeAssessmentSectionEntityPersistorTest.cs) (revision e6314b0eda3a1b258c4ce336ac1ddd3ada77970b)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/DikeAssessmentSectionEntityPersistorTest.cs (.../DikeAssessmentSectionEntityPersistorTest.cs) (revision bd8a3e95f0145815fa6724a162404a76c9dc9f5a)
@@ -56,7 +56,7 @@
mockRepository.ReplayAll();
// Call
- TestDelegate test = () => persistor.LoadModel(null);
+ TestDelegate test = () => persistor.LoadModel(null, () => new DikeAssessmentSection());
// Assert
Assert.Throws(test);
@@ -65,6 +65,40 @@
}
[Test]
+ public void LoadModel_ValidEntityNullModel_ThrowsArgumentNullException()
+ {
+ // Setup
+ const long storageId = 1234L;
+ const string name = "test";
+ const int norm = 30000;
+ const long pipingFailureMechanismStorageId = 1L;
+ var ringtoetsEntities = mockRepository.StrictMock();
+ DikeAssessmentSectionEntityPersistor persistor = new DikeAssessmentSectionEntityPersistor(ringtoetsEntities);
+ var entity = new DikeAssessmentSectionEntity
+ {
+ DikeAssessmentSectionEntityId = storageId,
+ Name = name,
+ Norm = norm,
+ FailureMechanismEntities = new List
+ {
+ new FailureMechanismEntity
+ {
+ FailureMechanismType = (int) FailureMechanismType.DikesPipingFailureMechanism, FailureMechanismEntityId = pipingFailureMechanismStorageId
+ }
+ }
+ };
+ mockRepository.ReplayAll();
+
+ // Call
+ TestDelegate test = () => persistor.LoadModel(entity, () => null);
+
+ // Assert
+ Assert.Throws(test);
+
+ mockRepository.VerifyAll();
+ }
+
+ [Test]
public void LoadModel_ValidEntity_EntityAsModel()
{
// Setup
@@ -87,7 +121,7 @@
mockRepository.ReplayAll();
// Call
- DikeAssessmentSection section = persistor.LoadModel(entity);
+ DikeAssessmentSection section = persistor.LoadModel(entity, () => new DikeAssessmentSection());
// Assert
Assert.AreEqual(storageId, section.StorageId);
@@ -118,7 +152,7 @@
mockRepository.ReplayAll();
// Call
- var loadedModels = parentNavigationProperty.Select(entity => persistor.LoadModel(entity));
+ var loadedModels = parentNavigationProperty.Select(entity => persistor.LoadModel(entity, () => new DikeAssessmentSection()));
// Assert
var parentNavigationPropertyList = parentNavigationProperty.ToList();
Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/DikesPipingFailureMechanismEntityPersistorTest.cs
===================================================================
diff -u -r2e520a68a32290ef4d8c89a5520227c3084612db -rbd8a3e95f0145815fa6724a162404a76c9dc9f5a
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/DikesPipingFailureMechanismEntityPersistorTest.cs (.../DikesPipingFailureMechanismEntityPersistorTest.cs) (revision 2e520a68a32290ef4d8c89a5520227c3084612db)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/DikesPipingFailureMechanismEntityPersistorTest.cs (.../DikesPipingFailureMechanismEntityPersistorTest.cs) (revision bd8a3e95f0145815fa6724a162404a76c9dc9f5a)
@@ -55,14 +55,35 @@
DikesPipingFailureMechanismEntityPersistor persistor = new DikesPipingFailureMechanismEntityPersistor(ringtoetsEntities);
// Call
- TestDelegate test = () => persistor.LoadModel(null);
+ TestDelegate test = () => persistor.LoadModel(null, () => new PipingFailureMechanism());
// Assert
var exception = Assert.Throws(test);
Assert.AreEqual("entity", exception.ParamName);
}
[Test]
+ public void LoadModel_ValidEntityNullModel_ThrowsArgumentNullException()
+ {
+ // Setup
+ const long storageId = 1234L;
+ FailureMechanismEntity entity = new FailureMechanismEntity
+ {
+ FailureMechanismEntityId = storageId,
+ FailureMechanismType = (int)FailureMechanismType.DikesPipingFailureMechanism,
+ };
+ var ringtoetsEntities = mockRepository.StrictMock();
+ DikesPipingFailureMechanismEntityPersistor persistor = new DikesPipingFailureMechanismEntityPersistor(ringtoetsEntities);
+
+ // Call
+ TestDelegate test = () => persistor.LoadModel(entity, () => null);
+
+ // Assert
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("model", exception.ParamName);
+ }
+
+ [Test]
public void LoadModel_EntityWithIncorrectType_ThrowsArgumentException()
{
// Setup
@@ -76,7 +97,7 @@
DikesPipingFailureMechanismEntityPersistor persistor = new DikesPipingFailureMechanismEntityPersistor(ringtoetsEntities);
// Call
- TestDelegate test = () => persistor.LoadModel(entity);
+ TestDelegate test = () => persistor.LoadModel(entity, () => new PipingFailureMechanism());
// Assert
Assert.Throws(test);
@@ -100,7 +121,7 @@
DikesPipingFailureMechanismEntityPersistor persistor = new DikesPipingFailureMechanismEntityPersistor(ringtoetsEntities);
// Call
- PipingFailureMechanism loadedModel = persistor.LoadModel(entity);
+ PipingFailureMechanism loadedModel = persistor.LoadModel(entity, () => new PipingFailureMechanism());
// Assert
Assert.IsInstanceOf(loadedModel);