Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Application.Ringtoets.Storage.csproj =================================================================== diff -u -r8b5a6f938fe2b04cd78623649df37580e145055f -r4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f --- Application/Ringtoets/src/Application.Ringtoets.Storage/Application.Ringtoets.Storage.csproj (.../Application.Ringtoets.Storage.csproj) (revision 8b5a6f938fe2b04cd78623649df37580e145055f) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Application.Ringtoets.Storage.csproj (.../Application.Ringtoets.Storage.csproj) (revision 4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f) @@ -74,7 +74,7 @@ RingtoetsEntities.tt - + RingtoetsEntities.tt Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/AssessmentSectionConverter.cs =================================================================== diff -u -r8b5a6f938fe2b04cd78623649df37580e145055f -r4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f --- Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/AssessmentSectionConverter.cs (.../AssessmentSectionConverter.cs) (revision 8b5a6f938fe2b04cd78623649df37580e145055f) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Converters/AssessmentSectionConverter.cs (.../AssessmentSectionConverter.cs) (revision 4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f) @@ -21,6 +21,8 @@ using System; using Application.Ringtoets.Storage.DbContext; + +using Ringtoets.Common.Data; using Ringtoets.HydraRing.Data; using Ringtoets.Integration.Data; @@ -49,6 +51,7 @@ assessmentSection.StorageId = entity.AssessmentSectionEntityId; assessmentSection.Name = entity.Name ?? string.Empty; assessmentSection.FailureMechanismContribution.Norm = entity.Norm; + assessmentSection.ChangeComposition(GetAssessmentSectionComposition(entity.Composition)); if (entity.HydraulicDatabaseLocation != null && entity.HydraulicDatabaseVersion != null) { @@ -62,6 +65,11 @@ return assessmentSection; } + private AssessmentSectionComposition GetAssessmentSectionComposition(short composition) + { + return (AssessmentSectionComposition)composition; + } + /// /// Converts to . /// @@ -83,6 +91,7 @@ } entity.AssessmentSectionEntityId = modelObject.StorageId; entity.Name = modelObject.Name; + entity.Composition = (short)modelObject.Composition; entity.Norm = modelObject.FailureMechanismContribution.Norm; if (modelObject.HydraulicBoundaryDatabase != null) Index: Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/AssessmentSectionEntity.cs =================================================================== diff -u -r8b5a6f938fe2b04cd78623649df37580e145055f -r4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f --- Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/AssessmentSectionEntity.cs (.../AssessmentSectionEntity.cs) (revision 8b5a6f938fe2b04cd78623649df37580e145055f) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/AssessmentSectionEntity.cs (.../AssessmentSectionEntity.cs) (revision 4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f) @@ -50,6 +50,7 @@ public int Order { get; set; } public string HydraulicDatabaseVersion { get; set; } public string HydraulicDatabaseLocation { get; set; } + public short Composition { get; set; } public virtual ProjectEntity ProjectEntity { get; set; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] Index: Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/DatabaseStructure.sql =================================================================== diff -u -r8b5a6f938fe2b04cd78623649df37580e145055f -r4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f --- Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/DatabaseStructure.sql (.../DatabaseStructure.sql) (revision 8b5a6f938fe2b04cd78623649df37580e145055f) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/DatabaseStructure.sql (.../DatabaseStructure.sql) (revision 4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f) @@ -1,12 +1,12 @@ /* ---------------------------------------------------- */ -/* Generated by Enterprise Architect Version 12.1 */ -/* Created On : 31-mrt-2016 13:21:34 */ +/* Generated by Enterprise Architect Version 12.0 */ +/* Created On : 06-apr-2016 9:02:20 */ /* DBMS : SQLite */ /* ---------------------------------------------------- */ /* Drop Tables */ -DROP TABLE IF EXISTS 'Version' +DROP TABLE IF EXISTS 'VersionEntity' ; DROP TABLE IF EXISTS 'ProjectEntity' @@ -26,7 +26,7 @@ /* Create Tables with Primary and Foreign Keys, Check and Unique Constraints */ -CREATE TABLE 'Version' +CREATE TABLE 'VersionEntity' ( 'VersionId' INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, 'FromVersion' TEXT, @@ -51,7 +51,8 @@ 'Order' INT (4) NOT NULL, 'HydraulicDatabaseVersion' TEXT, 'HydraulicDatabaseLocation' TEXT, - CONSTRAINT 'FK_AssessmentSection_ProjectEntity' FOREIGN KEY ('ProjectEntityId') REFERENCES 'ProjectEntity' ('ProjectEntityId') ON DELETE Cascade ON UPDATE Cascade + 'Composition' SMALLINT NOT NULL, -- Enum: Dike = 0, Dune = 1, DikeAndDune = 2 + CONSTRAINT 'FK_AssessmentSectionEntity_ProjectEntity' FOREIGN KEY ('ProjectEntityId') REFERENCES 'ProjectEntity' ('ProjectEntityId') ON DELETE Cascade ON UPDATE Cascade ) ; @@ -61,7 +62,7 @@ 'AssessmentSectionEntityId' INTEGER NOT NULL, 'FailureMechanismType' SMALLINT NOT NULL, -- Enumerator for different failure mechanism types (piping, macrostability, dunes, etc) CONSTRAINT 'FK_FailureMechanismEntity_AssessmentSectionEntity' FOREIGN KEY ('AssessmentSectionEntityId') REFERENCES 'AssessmentSectionEntity' ('AssessmentSectionEntityId') ON DELETE Cascade ON UPDATE Cascade, - CONSTRAINT 'UI_AS_FMT' UNIQUE ('FailureMechanismType','AssessmentSectionEntityId') + CONSTRAINT 'UI_AssessmentSectionEntityId_FailureMechanismType' UNIQUE ('FailureMechanismType','AssessmentSectionEntityId') ) ; @@ -91,7 +92,7 @@ /* Create Indexes and Triggers */ -CREATE INDEX 'IXFK_AssessmentSection_ProjectEntity' +CREATE INDEX 'IXFK_AssessmentSectionEntity_ProjectEntity' ON 'AssessmentSectionEntity' ('ProjectEntityId' ASC) ; Index: Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.Context.cs =================================================================== diff -u -r8b5a6f938fe2b04cd78623649df37580e145055f -r4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f --- Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.Context.cs (.../RingtoetsEntities.Context.cs) (revision 8b5a6f938fe2b04cd78623649df37580e145055f) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.Context.cs (.../RingtoetsEntities.Context.cs) (revision 4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f) @@ -57,6 +57,6 @@ public virtual DbSet HydraulicLocationEntities { get; set; } public virtual DbSet ProjectEntities { get; set; } public virtual DbSet ReferenceLinePointEntities { get; set; } - public virtual DbSet Versions { get; set; } + public virtual DbSet VersionEntities { get; set; } } } Index: Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.edmx =================================================================== diff -u -r8b5a6f938fe2b04cd78623649df37580e145055f -r4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f --- Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.edmx (.../RingtoetsEntities.edmx) (revision 8b5a6f938fe2b04cd78623649df37580e145055f) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.edmx (.../RingtoetsEntities.edmx) (revision 4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f) @@ -16,6 +16,7 @@ + @@ -54,7 +55,7 @@ - + @@ -117,7 +118,7 @@ - + @@ -145,7 +146,7 @@ - + @@ -174,6 +175,7 @@ + @@ -220,7 +222,7 @@ - + @@ -286,6 +288,7 @@ + @@ -337,9 +340,9 @@ - - - + + + Index: Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.edmx.diagram =================================================================== diff -u -r8b5a6f938fe2b04cd78623649df37580e145055f -r4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f --- Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.edmx.diagram (.../RingtoetsEntities.edmx.diagram) (revision 8b5a6f938fe2b04cd78623649df37580e145055f) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.edmx.diagram (.../RingtoetsEntities.edmx.diagram) (revision 4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f) @@ -10,7 +10,7 @@ - + Fisheye: Tag 4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f refers to a dead (removed) revision in file `Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/Version.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/VersionEntity.cs =================================================================== diff -u --- Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/VersionEntity.cs (revision 0) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/VersionEntity.cs (revision 4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f) @@ -0,0 +1,43 @@ +// 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. + +//------------------------------------------------------------------------------ +// +// This code was generated from a template. +// +// Manual changes to this file may cause unexpected behavior in your application. +// Manual changes to this file will be overwritten if the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Application.Ringtoets.Storage.DbContext +{ + using System; + using System.Collections.Generic; + + public partial class VersionEntity + { + public long VersionId { get; set; } + public string FromVersion { get; set; } + public string ToVersion { get; set; } + public Nullable Timestamp { get; set; } + } +} Index: Application/Ringtoets/src/Application.Ringtoets.Storage/StorageSqLite.cs =================================================================== diff -u -rbbe8871cfabad25988ec8f94115da2c485267118 -r4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f --- Application/Ringtoets/src/Application.Ringtoets.Storage/StorageSqLite.cs (.../StorageSqLite.cs) (revision bbe8871cfabad25988ec8f94115da2c485267118) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/StorageSqLite.cs (.../StorageSqLite.cs) (revision 4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f) @@ -292,7 +292,7 @@ try { dbContext.Database.Initialize(true); - dbContext.Versions.Load(); + dbContext.VersionEntities.Load(); } catch (Exception exception) { Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/AssessmentSectionConverterTest.cs =================================================================== diff -u -r903f178ab0fc6f4b6f7f3ac56a7fb9b9dd9dca95 -r4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/AssessmentSectionConverterTest.cs (.../AssessmentSectionConverterTest.cs) (revision 903f178ab0fc6f4b6f7f3ac56a7fb9b9dd9dca95) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Converters/AssessmentSectionConverterTest.cs (.../AssessmentSectionConverterTest.cs) (revision 4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f) @@ -20,9 +20,13 @@ // All rights reserved. using System; +using System.Linq; + using Application.Ringtoets.Storage.Converters; using Application.Ringtoets.Storage.DbContext; using NUnit.Framework; + +using Ringtoets.Common.Data; using Ringtoets.HydraRing.Data; using Ringtoets.Integration.Data; @@ -55,7 +59,10 @@ } [Test] - public void ConvertEntityToModel_ValidAssessmentSectionEntity_ReturnsTheAssessmentSectionEntityAsAssessmentSection() + [TestCase(AssessmentSectionComposition.Dike)] + [TestCase(AssessmentSectionComposition.Dune)] + [TestCase(AssessmentSectionComposition.DikeAndDune)] + public void ConvertEntityToModel_ValidAssessmentSectionEntity_ReturnsTheAssessmentSectionEntityAsAssessmentSection(AssessmentSectionComposition composition) { // Setup const long storageId = 1234L; @@ -71,7 +78,8 @@ ProjectEntityId = projectId, Norm = norm, HydraulicDatabaseVersion = hydraulicDatabaseVersion, - HydraulicDatabaseLocation = hydraulicDatabasePath + HydraulicDatabaseLocation = hydraulicDatabasePath, + Composition = (short)composition }; AssessmentSectionConverter converter = new AssessmentSectionConverter(); @@ -82,7 +90,14 @@ Assert.AreNotEqual(assessmentSectionEntity, assessmentSection); Assert.AreEqual(storageId, assessmentSection.StorageId); Assert.AreEqual(name, assessmentSection.Name); + Assert.AreEqual(composition, assessmentSection.Composition); Assert.AreEqual(norm, assessmentSection.FailureMechanismContribution.Norm); + double expectedFirstDistributionItemContribution = composition == AssessmentSectionComposition.Dune ? + 0.0 : 24.0; + Assert.AreEqual(expectedFirstDistributionItemContribution, assessmentSection.FailureMechanismContribution.Distribution.First().Contribution); + double expectedLastDistributionItemContribution = composition == AssessmentSectionComposition.DikeAndDune ? + 20.0 : 30.0; + Assert.AreEqual(expectedLastDistributionItemContribution, assessmentSection.FailureMechanismContribution.Distribution.Last().Contribution); Assert.AreEqual(hydraulicDatabaseVersion, assessmentSection.HydraulicBoundaryDatabase.Version); Assert.AreEqual(hydraulicDatabasePath, assessmentSection.HydraulicBoundaryDatabase.FilePath); } @@ -116,7 +131,10 @@ } [Test] - public void ConvertModelToEntity_ValidAssessmentSection_UpdatesTheAssessmentSectionAsAssessmentSectionEntity() + [TestCase(AssessmentSectionComposition.Dike)] + [TestCase(AssessmentSectionComposition.Dune)] + [TestCase(AssessmentSectionComposition.DikeAndDune)] + public void ConvertModelToEntity_ValidAssessmentSection_UpdatesTheAssessmentSectionAsAssessmentSectionEntity(AssessmentSectionComposition composition) { // Setup const long storageId = 1234L; @@ -139,6 +157,8 @@ FilePath = hydraulicDatabasePath } }; + assessmentSection.ChangeComposition(composition); + AssessmentSectionEntity assessmentSectionEntity = new AssessmentSectionEntity { ProjectEntityId = projectId @@ -153,6 +173,7 @@ Assert.AreEqual(storageId, assessmentSectionEntity.AssessmentSectionEntityId); Assert.AreEqual(projectId, assessmentSectionEntity.ProjectEntityId); Assert.AreEqual(name, assessmentSectionEntity.Name); + Assert.AreEqual((short)composition, assessmentSectionEntity.Composition); Assert.AreEqual(norm, assessmentSectionEntity.Norm); Assert.AreEqual(hydraulicDatabaseVersion, assessmentSectionEntity.HydraulicDatabaseVersion); Assert.AreEqual(hydraulicDatabasePath, assessmentSectionEntity.HydraulicDatabaseLocation); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/AssessmentSectionPersistorTest.cs =================================================================== diff -u -rc116b4635603c6d5bbdedb837f68fd3839ece6ca -r4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/AssessmentSectionPersistorTest.cs (.../AssessmentSectionPersistorTest.cs) (revision c116b4635603c6d5bbdedb837f68fd3839ece6ca) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Persistors/AssessmentSectionPersistorTest.cs (.../AssessmentSectionPersistorTest.cs) (revision 4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f) @@ -29,6 +29,8 @@ using Application.Ringtoets.Storage.TestUtil; using NUnit.Framework; using Rhino.Mocks; + +using Ringtoets.Common.Data; using Ringtoets.HydraRing.Data; using Ringtoets.Integration.Data; @@ -110,6 +112,7 @@ const long otherHydraulicDatabaseLocationStorageId = 4321L; const decimal otherHydraulicDatabaseLocationX = 3927; const decimal otherHydraulicDatabaseLocationY = 372; + const AssessmentSectionComposition composition = AssessmentSectionComposition.DikeAndDune; var ringtoetsEntities = mockRepository.Stub(); AssessmentSectionPersistor persistor = new AssessmentSectionPersistor(ringtoetsEntities); @@ -123,6 +126,7 @@ } }, HydraulicDatabaseVersion = hydraulicDatabaseVersion, HydraulicDatabaseLocation = hydraulicDatabasePath, + Composition = (short)composition, HydraulicLocationEntities = new List { new HydraulicLocationEntity @@ -145,6 +149,7 @@ // Assert Assert.AreEqual(storageId, section.StorageId); Assert.AreEqual(name, section.Name); + Assert.AreEqual(composition, section.Composition); Assert.AreEqual(norm, section.FailureMechanismContribution.Norm); Assert.AreEqual(pipingFailureMechanismStorageId, section.Piping.StorageId); Assert.AreEqual(hydraulicDatabaseVersion, section.HydraulicBoundaryDatabase.Version); @@ -182,6 +187,7 @@ { AssessmentSectionEntityId = 1, Name = "test1", Norm = 12, HydraulicDatabaseVersion = "1.0", HydraulicDatabaseLocation = "temp/test", + Composition = (short)AssessmentSectionComposition.Dune, HydraulicLocationEntities = new List { new HydraulicLocationEntity @@ -194,6 +200,7 @@ { AssessmentSectionEntityId = 2, Name = "test2", Norm = 22, HydraulicDatabaseVersion = "2.0", HydraulicDatabaseLocation = "test", + Composition = (short)AssessmentSectionComposition.Dike, HydraulicLocationEntities = new List { new HydraulicLocationEntity @@ -216,6 +223,7 @@ { Assert.AreEqual(parentNavigationPropertyList[i].AssessmentSectionEntityId, loadedModelsList[i].StorageId); Assert.AreEqual(parentNavigationPropertyList[i].Name, loadedModelsList[i].Name); + Assert.AreEqual((AssessmentSectionComposition)parentNavigationPropertyList[i].Composition, loadedModelsList[i].Composition); Assert.AreEqual(parentNavigationPropertyList[i].Norm, loadedModelsList[i].FailureMechanismContribution.Norm); Assert.AreEqual(parentNavigationPropertyList[i].HydraulicDatabaseVersion, loadedModelsList[i].HydraulicBoundaryDatabase.Version); Assert.AreEqual(parentNavigationPropertyList[i].HydraulicDatabaseLocation, loadedModelsList[i].HydraulicBoundaryDatabase.FilePath); @@ -272,7 +280,10 @@ } [Test] - public void InsertModel_EmptyParentNavigationPropertySingleAssessmentSectionWithoutStorageId_AssessmentSectionAsEntityInParentNavigationProperty() + [TestCase(AssessmentSectionComposition.Dike)] + [TestCase(AssessmentSectionComposition.Dune)] + [TestCase(AssessmentSectionComposition.DikeAndDune)] + public void InsertModel_EmptyParentNavigationPropertySingleAssessmentSectionWithoutStorageId_AssessmentSectionAsEntityInParentNavigationProperty(AssessmentSectionComposition composition) { // Setup const string name = "test"; @@ -292,6 +303,7 @@ }, HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase() }; + assessmentSection.ChangeComposition(composition); AssessmentSectionPersistor persistor = new AssessmentSectionPersistor(ringtoetsEntities); @@ -305,6 +317,7 @@ Assert.AreEqual(0, entity.AssessmentSectionEntityId); Assert.AreEqual(name, entity.Name); Assert.AreEqual(norm, entity.Norm); + Assert.AreEqual((short)composition, entity.Composition); mockRepository.VerifyAll(); } @@ -443,24 +456,24 @@ { // Setup const string name = "test"; + AssessmentSectionComposition composition = AssessmentSectionComposition.DikeAndDune; const int norm = 30000; var ringtoetsEntities = RingtoetsEntitiesHelper.Create(mockRepository); mockRepository.ReplayAll(); AssessmentSectionPersistor persistor = new AssessmentSectionPersistor(ringtoetsEntities); ICollection parentNavigationProperty = new List(); - AssessmentSection assessmentSection = - new AssessmentSection + AssessmentSection assessmentSection = new AssessmentSection + { + Name = name, + FailureMechanismContribution = { - Name = name, - FailureMechanismContribution = - { - Norm = norm - }, - HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase() - } - ; + Norm = norm + }, + HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase() + }; + assessmentSection.ChangeComposition(composition); // Call persistor.UpdateModel(parentNavigationProperty, assessmentSection, 0); @@ -471,6 +484,7 @@ var entity = parentNavigationPropertyList[0]; Assert.AreEqual(0, entity.AssessmentSectionEntityId); Assert.AreEqual(name, entity.Name); + Assert.AreEqual((short)composition, entity.Composition); Assert.AreEqual(norm, entity.Norm); mockRepository.VerifyAll(); @@ -577,6 +591,7 @@ // Setup const string name = "test"; const long storageId = 1234L; + AssessmentSectionComposition composition = AssessmentSectionComposition.DikeAndDune; const int norm = 30000; var ringtoetsEntities = RingtoetsEntitiesHelper.Create(mockRepository); mockRepository.ReplayAll(); @@ -587,7 +602,8 @@ { AssessmentSectionEntityId = storageId, Name = "old name", - Norm = 1 + Norm = 1, + Composition = (short)AssessmentSectionComposition.Dune } }; AssessmentSection assessmentSection = new AssessmentSection @@ -600,6 +616,7 @@ }, HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase() }; + assessmentSection.ChangeComposition(composition); // Call persistor.UpdateModel(parentNavigationProperty, assessmentSection, 0); @@ -610,6 +627,7 @@ var entity = parentNavigationPropertyList[0]; Assert.AreEqual(storageId, entity.AssessmentSectionEntityId); Assert.AreEqual(name, entity.Name); + Assert.AreEqual((short)composition, entity.Composition); Assert.AreEqual(norm, entity.Norm); mockRepository.VerifyAll(); @@ -621,6 +639,7 @@ // Setup const string name = "UpdatedName"; const long storageId = 1234L; + AssessmentSectionComposition composition = AssessmentSectionComposition.Dike; const int norm = 30000; var ringtoetsEntities = RingtoetsEntitiesHelper.Create(mockRepository); @@ -638,7 +657,8 @@ { AssessmentSectionEntityId = storageId, Name = "Entity to update", - Norm = 1 + Norm = 1, + Composition = (short)AssessmentSectionComposition.Dune } }; @@ -654,6 +674,7 @@ }, HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase() }; + assessmentSection.ChangeComposition(composition); // Call persistor.UpdateModel(parentNavigationProperty, assessmentSection, 0); @@ -664,6 +685,7 @@ Assert.IsInstanceOf(entity); Assert.AreEqual(storageId, entity.AssessmentSectionEntityId); Assert.AreEqual(name, entity.Name); + Assert.AreEqual((short)composition, entity.Composition); Assert.AreEqual(norm, entity.Norm); mockRepository.VerifyAll(); @@ -774,6 +796,7 @@ // Setup const string name = "test"; const long storageId = 1234L; + AssessmentSectionComposition composition = AssessmentSectionComposition.DikeAndDune; const int norm = 30000; AssessmentSectionEntity entityToUpdate = new AssessmentSectionEntity { @@ -809,7 +832,7 @@ StorageId = storageId, HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase() }; - mockRepository.ReplayAll(); + assessmentSection.ChangeComposition(composition); TestDelegate updateTest = () => persistor.UpdateModel(parentNavigationProperty, assessmentSection, 0); Assert.DoesNotThrow(updateTest, "Precondition failed: Update should not throw exception."); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/RingtoetsDatabaseCreatorTest.cs =================================================================== diff -u -r2ae1c9433c3c28b32105b9778b682b5e512a0f00 -r4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/RingtoetsDatabaseCreatorTest.cs (.../RingtoetsDatabaseCreatorTest.cs) (revision 2ae1c9433c3c28b32105b9778b682b5e512a0f00) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/RingtoetsDatabaseCreatorTest.cs (.../RingtoetsDatabaseCreatorTest.cs) (revision 4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f) @@ -34,7 +34,8 @@ private static readonly string pathToStorageProject = Path.Combine(TestHelper.TestDataDirectory, "Application", "Ringtoets", "src", "Application.Ringtoets.Storage"); /// - /// Creates a new Ringtoets.rtd file in the root of the , which is used to auto-generate the database code. + /// Creates a new Ringtoets.rtd file in the root of the , + /// which is used to auto-generate the database code. /// [Test] public void RingtoetsDatabaseCreator_Explicit_CreatesRingtoetsProjectDatabaseFile() Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/StorageSqLiteTest.cs =================================================================== diff -u -rc2694ebe86aef7b8ed7c9dd05a55eec101958a96 -r4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/StorageSqLiteTest.cs (.../StorageSqLiteTest.cs) (revision c2694ebe86aef7b8ed7c9dd05a55eec101958a96) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/StorageSqLiteTest.cs (.../StorageSqLiteTest.cs) (revision 4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f) @@ -348,7 +348,8 @@ var storage = new StorageSqLite(); var expectedMessage = String.Format(@"Fout bij het schrijven naar bestand '{0}'{1}: {2}", tempRingtoetsFile, "", "Een fout is opgetreden met het updaten van het Ringtoets bestand."); var expectedInnerExceptionMessage = "An error occurred while executing the command definition. See the inner exception for details."; - var expectedInnerExceptionInnerExceptionMessage = "SQL logic error or missing database\r\nno such table: ProjectEntity"; + var expectedInnerExceptionInnerExceptionMessage = "SQL logic error or missing database" + Environment.NewLine + + "no such table: ProjectEntity"; using (var fileDisposeHelper = new FileDisposeHelperGarbageCollected(tempRingtoetsFile)) { Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/SqLiteDatabaseHelperTest.cs =================================================================== diff -u -rc2694ebe86aef7b8ed7c9dd05a55eec101958a96 -r4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f --- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/SqLiteDatabaseHelperTest.cs (.../SqLiteDatabaseHelperTest.cs) (revision c2694ebe86aef7b8ed7c9dd05a55eec101958a96) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/SqLiteDatabaseHelperTest.cs (.../SqLiteDatabaseHelperTest.cs) (revision 4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f) @@ -162,7 +162,7 @@ public void GetCorruptSchema_Always_ScriptThatOnlyGeneratesEnoughToPassValidation() { // Setup - const string expectedCreateVersionTable = "CREATE TABLE Version "; + const string expectedCreateVersionTable = "CREATE TABLE VersionEntity "; const string notExpectedCreateProjectEntityTable = "CREATE TABLE ProjectEntity "; // Call Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/SqLiteDatabaseHelper.cs =================================================================== diff -u -rc2694ebe86aef7b8ed7c9dd05a55eec101958a96 -r4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f --- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/SqLiteDatabaseHelper.cs (.../SqLiteDatabaseHelper.cs) (revision c2694ebe86aef7b8ed7c9dd05a55eec101958a96) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/SqLiteDatabaseHelper.cs (.../SqLiteDatabaseHelper.cs) (revision 4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f) @@ -93,8 +93,8 @@ /// The corrupt databaseschema that will pass validation. public static string GetCorruptSchema() { - return "DROP TABLE IF EXISTS 'Version'; " + - "CREATE TABLE Version (VersionId INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," + + return "DROP TABLE IF EXISTS 'VersionEntity'; " + + "CREATE TABLE VersionEntity (VersionId INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," + " FromVersion VARCHAR (16), ToVersion VARCHAR (16),Timestamp NUMERIC); "; } } Index: Ringtoets/Common/src/Ringtoets.Common.Data/AssessmentSectionComposition.cs =================================================================== diff -u -rc8eb333514adae8495778ed16c71c41a6eb4251b -r4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f --- Ringtoets/Common/src/Ringtoets.Common.Data/AssessmentSectionComposition.cs (.../AssessmentSectionComposition.cs) (revision c8eb333514adae8495778ed16c71c41a6eb4251b) +++ Ringtoets/Common/src/Ringtoets.Common.Data/AssessmentSectionComposition.cs (.../AssessmentSectionComposition.cs) (revision 4e65fa5d8abdf1c0a9238492cdbcd7d2b3fa2d0f) @@ -29,14 +29,14 @@ /// /// The assessment section consists only out of 'dike' elements. /// - Dike, + Dike = 0, /// /// The assessment section consists only out of 'dune' elements. /// - Dune, + Dune = 1, /// /// The assessment section consists out of a combination of 'dike' and 'dune' elements /// - DikeAndDune + DikeAndDune = 2 } } \ No newline at end of file