Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/CalculationGroupCreateExtensions.cs =================================================================== diff -u -ra760d63747f5c44e99f4e747ace1b4e51c040362 -r3fa8664290181eedfdcefbe87f32aa7539d748e3 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/CalculationGroupCreateExtensions.cs (.../CalculationGroupCreateExtensions.cs) (revision a760d63747f5c44e99f4e747ace1b4e51c040362) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/CalculationGroupCreateExtensions.cs (.../CalculationGroupCreateExtensions.cs) (revision 3fa8664290181eedfdcefbe87f32aa7539d748e3) @@ -50,7 +50,7 @@ var entity = new CalculationGroupEntity { Name = group.Name, - IsEditable = group.IsNameEditable ? (byte)1 : (byte)0, + IsEditable = Convert.ToByte(group.IsNameEditable), Order = order }; CreateChildElements(group, entity, registry); Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/CalculationGroupEntityReadExtentions.cs =================================================================== diff -u -r1e784991112abbd6c3fb52f3b8808b7423851812 -r3fa8664290181eedfdcefbe87f32aa7539d748e3 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/CalculationGroupEntityReadExtentions.cs (.../CalculationGroupEntityReadExtentions.cs) (revision 1e784991112abbd6c3fb52f3b8808b7423851812) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/CalculationGroupEntityReadExtentions.cs (.../CalculationGroupEntityReadExtentions.cs) (revision 3fa8664290181eedfdcefbe87f32aa7539d748e3) @@ -25,7 +25,6 @@ using Application.Ringtoets.Storage.DbContext; using Ringtoets.Common.Data.Calculation; -using Ringtoets.Integration.Data; namespace Application.Ringtoets.Storage.Read { @@ -42,7 +41,7 @@ /// The to create /// for. /// The object keeping track of read operations. - /// A new . + /// A new . /// Thrown when is null. internal static CalculationGroup Read(this CalculationGroupEntity entity, ReadConversionCollector collector) { Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs =================================================================== diff -u -rfe68c3f7cae5946b93d9e27eb532b176a6b26b84 -r3fa8664290181eedfdcefbe87f32aa7539d748e3 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs (.../FailureMechanismEntityReadExtensions.cs) (revision fe68c3f7cae5946b93d9e27eb532b176a6b26b84) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs (.../FailureMechanismEntityReadExtensions.cs) (revision 3fa8664290181eedfdcefbe87f32aa7539d748e3) @@ -85,7 +85,7 @@ /// /// Read the and use the information to construct a . /// - /// A new . + /// A new . internal static GrassCoverErosionInwardsFailureMechanism ReadAsGrassCoverErosionInwardsFailureMechanism(this FailureMechanismEntity entity) { var failureMechanism = new GrassCoverErosionInwardsFailureMechanism Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/StochasticSoilModelSegmentPointEntityReadExtensions.cs =================================================================== diff -u -r13e40c4b5b76b2a155c4490fdeb7b9644fde18f3 -r3fa8664290181eedfdcefbe87f32aa7539d748e3 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/StochasticSoilModelSegmentPointEntityReadExtensions.cs (.../StochasticSoilModelSegmentPointEntityReadExtensions.cs) (revision 13e40c4b5b76b2a155c4490fdeb7b9644fde18f3) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/StochasticSoilModelSegmentPointEntityReadExtensions.cs (.../StochasticSoilModelSegmentPointEntityReadExtensions.cs) (revision 3fa8664290181eedfdcefbe87f32aa7539d748e3) @@ -36,10 +36,11 @@ internal static class StochasticSoilModelSegmentPointEntityReadExtensions { /// - /// Reads the and use the information to construct a . + /// Reads the and use the information + /// to construct a . /// - /// The to create for. - /// A new . + /// The to create for. + /// A new . internal static Point2D Read(this StochasticSoilModelSegmentPointEntity entity) { return new Point2D(Convert.ToDouble(entity.X), Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/SurfaceLineEntityReadExtensions.cs =================================================================== diff -u -rae6f0c6b534ca650e160ae6d9c0bc90369d25c68 -r3fa8664290181eedfdcefbe87f32aa7539d748e3 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/SurfaceLineEntityReadExtensions.cs (.../SurfaceLineEntityReadExtensions.cs) (revision ae6f0c6b534ca650e160ae6d9c0bc90369d25c68) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/SurfaceLineEntityReadExtensions.cs (.../SurfaceLineEntityReadExtensions.cs) (revision 3fa8664290181eedfdcefbe87f32aa7539d748e3) @@ -44,7 +44,7 @@ /// The to create /// for. /// The object keeping track of read operations. - /// A new . + /// A new . /// Thrown when is null. internal static RingtoetsPipingSurfaceLine Read(this SurfaceLineEntity entity, ReadConversionCollector collector) { Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/CalculationGroupUpdateExtensions.cs =================================================================== diff -u -rae6f0c6b534ca650e160ae6d9c0bc90369d25c68 -r3fa8664290181eedfdcefbe87f32aa7539d748e3 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/CalculationGroupUpdateExtensions.cs (.../CalculationGroupUpdateExtensions.cs) (revision ae6f0c6b534ca650e160ae6d9c0bc90369d25c68) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/CalculationGroupUpdateExtensions.cs (.../CalculationGroupUpdateExtensions.cs) (revision 3fa8664290181eedfdcefbe87f32aa7539d748e3) @@ -60,10 +60,8 @@ } CalculationGroupEntity entity = GetCorrespondingCalculationGroupEntity(calculationGroup, context); - if (calculationGroup.IsNameEditable) - { - entity.Name = calculationGroup.Name; - } + entity.Name = calculationGroup.Name; + UpdateChildren(entity, calculationGroup, registry, context); registry.Register(entity, calculationGroup); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/CalculationGroupCreateExtensionsTest.cs =================================================================== diff -u -r3e1fd2b47f21d13d88ef644978ca4c28ace81994 -r3fa8664290181eedfdcefbe87f32aa7539d748e3 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/CalculationGroupCreateExtensionsTest.cs (.../CalculationGroupCreateExtensionsTest.cs) (revision 3e1fd2b47f21d13d88ef644978ca4c28ace81994) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/CalculationGroupCreateExtensionsTest.cs (.../CalculationGroupCreateExtensionsTest.cs) (revision 3fa8664290181eedfdcefbe87f32aa7539d748e3) @@ -64,8 +64,7 @@ // Assert Assert.AreEqual(name, entity.Name); - byte expectedIsEditableValue = isNameEditable ? (byte)1 : (byte)0; - Assert.AreEqual(expectedIsEditableValue, entity.IsEditable); + Assert.AreEqual(Convert.ToByte(isNameEditable), entity.IsEditable); Assert.AreEqual(order, entity.Order); CollectionAssert.IsEmpty(entity.CalculationGroupEntity1); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/CalculationGroupUpdateExtensionsTest.cs =================================================================== diff -u -r1e784991112abbd6c3fb52f3b8808b7423851812 -r3fa8664290181eedfdcefbe87f32aa7539d748e3 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/CalculationGroupUpdateExtensionsTest.cs (.../CalculationGroupUpdateExtensionsTest.cs) (revision 1e784991112abbd6c3fb52f3b8808b7423851812) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/CalculationGroupUpdateExtensionsTest.cs (.../CalculationGroupUpdateExtensionsTest.cs) (revision 3fa8664290181eedfdcefbe87f32aa7539d748e3) @@ -81,7 +81,7 @@ } [Test] - public void Update_GroupHasntBeenSaved_ThrowEntityNotFoundException() + public void Update_GroupHasNotBeenSaved_ThrowEntityNotFoundException() { // Setup var mocks = new MockRepository(); @@ -136,6 +136,39 @@ } [Test] + public void Update_GroupWithReadonlyNameWithoutChildren_NoChangedToEntity() + { + // Setup + var mocks = new MockRepository(); + IRingtoetsEntities ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks); + mocks.ReplayAll(); + + CalculationGroup calculationGroup = CreateCalculationGroupWithoutChildren(false); + + byte originalIsEditableValue = Convert.ToByte(calculationGroup.IsNameEditable); + var groupEntity = new CalculationGroupEntity + { + CalculationGroupEntityId = calculationGroup.StorageId, + IsEditable = originalIsEditableValue, + Name = calculationGroup.Name + }; + ringtoetsEntities.CalculationGroupEntities.Add(groupEntity); + + var registry = new PersistenceRegistry(); + + // Call + calculationGroup.Update(registry, ringtoetsEntities); + + // Assert + Assert.AreEqual(calculationGroup.Name, groupEntity.Name); + Assert.AreEqual(originalIsEditableValue, groupEntity.IsEditable); + + CollectionAssert.IsEmpty(groupEntity.CalculationGroupEntity1, + "No changes to the children expected."); + mocks.VerifyAll(); + } + + [Test] public void Update_ChildGroupsReordered_EntitiesUpdated() { // Setup @@ -145,13 +178,13 @@ CalculationGroup calculationGroup = CreateCalculationGroupWith2ChildGroups(); - var childGroup1 = new CalculationGroupEntity + var childGroupEntity1 = new CalculationGroupEntity { CalculationGroupEntityId = ((CalculationGroup)calculationGroup.Children[0]).StorageId, Name = "A", Order = 1 }; - var childGroup2 = new CalculationGroupEntity + var childGroupEntity2 = new CalculationGroupEntity { CalculationGroupEntityId = ((CalculationGroup)calculationGroup.Children[1]).StorageId, Name = "A", @@ -164,24 +197,24 @@ Name = "", CalculationGroupEntity1 = { - childGroup1, - childGroup2 + childGroupEntity1, + childGroupEntity2 } }; ringtoetsEntities.CalculationGroupEntities.Add(groupEntity); - ringtoetsEntities.CalculationGroupEntities.Add(childGroup1); - ringtoetsEntities.CalculationGroupEntities.Add(childGroup2); + ringtoetsEntities.CalculationGroupEntities.Add(childGroupEntity1); + ringtoetsEntities.CalculationGroupEntities.Add(childGroupEntity2); var registry = new PersistenceRegistry(); // Call calculationGroup.Update(registry, ringtoetsEntities); // Assert - Assert.AreEqual(0, childGroup1.Order); - Assert.AreEqual(calculationGroup.Children[0].Name, childGroup1.Name); - Assert.AreEqual(1, childGroup2.Order); - Assert.AreEqual(calculationGroup.Children[1].Name, childGroup2.Name); + Assert.AreEqual(0, childGroupEntity1.Order); + Assert.AreEqual(calculationGroup.Children[0].Name, childGroupEntity1.Name); + Assert.AreEqual(1, childGroupEntity2.Order); + Assert.AreEqual(calculationGroup.Children[1].Name, childGroupEntity2.Name); mocks.VerifyAll(); } @@ -195,22 +228,22 @@ CalculationGroup calculationGroup = CreateCalculationGroupWith2ChildGroups(); - var childGroup1 = CreateExpectedEmptyGroupEntity((CalculationGroup)calculationGroup.Children[0], 0); - var childGroup2 = CreateExpectedEmptyGroupEntity((CalculationGroup)calculationGroup.Children[1], 1); + CalculationGroupEntity childGroupEntity1 = CreateExpectedEmptyGroupEntity((CalculationGroup)calculationGroup.Children[0], 0); + CalculationGroupEntity childGroupEntity2 = CreateExpectedEmptyGroupEntity((CalculationGroup)calculationGroup.Children[1], 1); var groupEntity = new CalculationGroupEntity { CalculationGroupEntityId = calculationGroup.StorageId, IsEditable = Convert.ToByte(calculationGroup.IsNameEditable), Name = "", CalculationGroupEntity1 = { - childGroup1, - childGroup2 + childGroupEntity1, + childGroupEntity2 } }; ringtoetsEntities.CalculationGroupEntities.Add(groupEntity); - ringtoetsEntities.CalculationGroupEntities.Add(childGroup1); - ringtoetsEntities.CalculationGroupEntities.Add(childGroup2); + ringtoetsEntities.CalculationGroupEntities.Add(childGroupEntity1); + ringtoetsEntities.CalculationGroupEntities.Add(childGroupEntity2); var insertedGroup = new CalculationGroup("", false); const int insertedIndex = 1; @@ -226,23 +259,23 @@ .OrderBy(cge => cge.Order) .ToArray(); Assert.AreEqual(3, updatedChildGroupEntities.Length); - Assert.AreSame(childGroup1, updatedChildGroupEntities[0]); - Assert.AreEqual(0, childGroup1.Order); - Assert.AreEqual(calculationGroup.Children[0].Name, childGroup1.Name); + Assert.AreSame(childGroupEntity1, updatedChildGroupEntities[0]); + Assert.AreEqual(0, childGroupEntity1.Order); + Assert.AreEqual(calculationGroup.Children[0].Name, childGroupEntity1.Name); var newGroupEntity = updatedChildGroupEntities[insertedIndex]; Assert.AreEqual(insertedIndex, newGroupEntity.Order); Assert.AreEqual(insertedGroup.Name, newGroupEntity.Name); Assert.AreEqual(0, newGroupEntity.IsEditable); - Assert.AreSame(childGroup2, updatedChildGroupEntities[2]); - Assert.AreEqual(2, childGroup2.Order); - Assert.AreEqual(calculationGroup.Children[2].Name, childGroup2.Name); + Assert.AreSame(childGroupEntity2, updatedChildGroupEntities[2]); + Assert.AreEqual(2, childGroupEntity2.Order); + Assert.AreEqual(calculationGroup.Children[2].Name, childGroupEntity2.Name); mocks.VerifyAll(); } [Test] - public void Update_ChildGroupAdded_RootEntitiyUpdatedAndNewEntityCreated() + public void Update_ChildGroupAdded_RootEntityUpdatedAndNewEntityCreated() { // Setup var mocks = new MockRepository(); @@ -251,7 +284,7 @@ CalculationGroup calculationGroup = CreateCalculationGroupWithoutChildren(true); - var rootGroupEntity = CreateExpectedEmptyGroupEntity(calculationGroup, 0); + CalculationGroupEntity rootGroupEntity = CreateExpectedEmptyGroupEntity(calculationGroup, 0); ringtoetsEntities.CalculationGroupEntities.Add(rootGroupEntity); var newGroup = new CalculationGroup("", false); @@ -282,23 +315,22 @@ IRingtoetsEntities ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks); mocks.ReplayAll(); - var draggedGroup = new CalculationGroup("", false) { StorageId = 876 }; CalculationGroup calculationGroup = CreateCalculationGroupWith2ChildGroups(); ((CalculationGroup)calculationGroup.Children[0]).Children.Add(draggedGroup); - var childGroup1Entity = CreateExpectedEmptyGroupEntity((CalculationGroup)calculationGroup.Children[0], 0); - var childGroup2Entity = CreateExpectedEmptyGroupEntity((CalculationGroup)calculationGroup.Children[1], 1); - var fillerGroupEntity = CreateExpectedEmptyGroupEntity(new CalculationGroup(), 0); + CalculationGroupEntity childGroup1Entity = CreateExpectedEmptyGroupEntity((CalculationGroup)calculationGroup.Children[0], 0); + CalculationGroupEntity childGroup2Entity = CreateExpectedEmptyGroupEntity((CalculationGroup)calculationGroup.Children[1], 1); + CalculationGroupEntity fillerGroupEntity = CreateExpectedEmptyGroupEntity(new CalculationGroup(), 0); childGroup2Entity.CalculationGroupEntity1.Add(fillerGroupEntity); - var draggedGroupEntity = CreateExpectedEmptyGroupEntity(draggedGroup, 1); + CalculationGroupEntity draggedGroupEntity = CreateExpectedEmptyGroupEntity(draggedGroup, 1); childGroup2Entity.CalculationGroupEntity1.Add(draggedGroupEntity); draggedGroupEntity.CalculationGroupEntity2 = childGroup2Entity; - var rootGroupEntity = CreateExpectedEmptyGroupEntity(calculationGroup, 0); + CalculationGroupEntity rootGroupEntity = CreateExpectedEmptyGroupEntity(calculationGroup, 0); rootGroupEntity.CalculationGroupEntity1.Add(childGroup1Entity); rootGroupEntity.CalculationGroupEntity1.Add(childGroup2Entity); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/PipingFailureMechanismUpdateExtensionsTest.cs =================================================================== diff -u -rfe68c3f7cae5946b93d9e27eb532b176a6b26b84 -r3fa8664290181eedfdcefbe87f32aa7539d748e3 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/PipingFailureMechanismUpdateExtensionsTest.cs (.../PipingFailureMechanismUpdateExtensionsTest.cs) (revision fe68c3f7cae5946b93d9e27eb532b176a6b26b84) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/PipingFailureMechanismUpdateExtensionsTest.cs (.../PipingFailureMechanismUpdateExtensionsTest.cs) (revision 3fa8664290181eedfdcefbe87f32aa7539d748e3) @@ -152,7 +152,7 @@ }; var failureMechanismEntity = new FailureMechanismEntity { - FailureMechanismEntityId = 1, + FailureMechanismEntityId = failureMechanism.StorageId, IsRelevant = Convert.ToByte(false), CalculationGroupEntity = rootCalculationGroup }; @@ -223,6 +223,10 @@ mocks.ReplayAll(); + var stochasticSoilModel = new StochasticSoilModel(-1, string.Empty, string.Empty) + { + StorageId = 1 + }; var failureMechanism = new PipingFailureMechanism { StorageId = 1, @@ -232,24 +236,21 @@ }, StochasticSoilModels = { - new StochasticSoilModel(-1, string.Empty, string.Empty) - { - StorageId = 1 - } + stochasticSoilModel } }; var stochasticSoilModelEntity = new StochasticSoilModelEntity { - StochasticSoilModelEntityId = 1 + StochasticSoilModelEntityId = stochasticSoilModel.StorageId }; var rootCalculationGroupEntity = new CalculationGroupEntity { CalculationGroupEntityId = failureMechanism.CalculationsGroup.StorageId }; var failureMechanismEntity = new FailureMechanismEntity { - FailureMechanismEntityId = 1, + FailureMechanismEntityId = failureMechanism.StorageId, CalculationGroupEntity = rootCalculationGroupEntity, StochasticSoilModelEntities = { @@ -322,17 +323,15 @@ var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks); mocks.ReplayAll(); - const long surfaceLineId = 23; var surfaceLine = new RingtoetsPipingSurfaceLine { - StorageId = surfaceLineId, + StorageId = 23, ReferenceLineIntersectionWorldPoint = new Point2D(45.67, 34.46) }; - const long failureMechanismId = 1; var failureMechanism = new PipingFailureMechanism { - StorageId = failureMechanismId, + StorageId = 1, CalculationsGroup = { StorageId = 54 @@ -342,15 +341,15 @@ var surfaceLineEntity = new SurfaceLineEntity { - SurfaceLineEntityId = surfaceLineId + SurfaceLineEntityId = surfaceLine.StorageId }; var rootCalculationGroupEntity = new CalculationGroupEntity { CalculationGroupEntityId = failureMechanism.CalculationsGroup.StorageId }; var failureMechanismEntity = new FailureMechanismEntity { - FailureMechanismEntityId = failureMechanismId, + FailureMechanismEntityId = failureMechanism.StorageId, CalculationGroupEntity = rootCalculationGroupEntity, SurfaceLineEntities = { @@ -396,7 +395,7 @@ }; var failureMechanismEntity = new FailureMechanismEntity { - FailureMechanismEntityId = 1, + FailureMechanismEntityId = failureMechanism.StorageId, CalculationGroupEntity = rootCalculationGroupEntity }; @@ -430,22 +429,23 @@ } }; var testName = "testName"; - failureMechanism.AddSection(new FailureMechanismSection(testName, new[] { new Point2D(0, 0) }) + var failureMechanismSection = new FailureMechanismSection(testName, new[] { new Point2D(0, 0) }) { StorageId = 1 - }); + }; + failureMechanism.AddSection(failureMechanismSection); var failureMechanismSectionEntity = new FailureMechanismSectionEntity { - FailureMechanismSectionEntityId = 1, + FailureMechanismSectionEntityId = failureMechanismSection.StorageId, }; var rootCalculationGroupEntity = new CalculationGroupEntity { CalculationGroupEntityId = failureMechanism.CalculationsGroup.StorageId }; var failureMechanismEntity = new FailureMechanismEntity { - FailureMechanismEntityId = 1, + FailureMechanismEntityId = failureMechanism.StorageId, CalculationGroupEntity = rootCalculationGroupEntity, FailureMechanismSectionEntities = { @@ -575,11 +575,11 @@ // Assert Assert.AreEqual(1, rootCalculationGroupEntity.CalculationGroupEntity1.Count); - CalculationGroupEntity newlyAddedGroupEntity = rootCalculationGroupEntity.CalculationGroupEntity1.First(); - Assert.AreEqual(alreadySavedChildGroup.Name, newlyAddedGroupEntity.Name); - Assert.AreEqual(1, newlyAddedGroupEntity.IsEditable); - Assert.AreEqual(0, newlyAddedGroupEntity.Order); - Assert.AreEqual(alreadySavedChildGroup.StorageId, newlyAddedGroupEntity.CalculationGroupEntityId); + CalculationGroupEntity retainedCalculationGroupEntity = rootCalculationGroupEntity.CalculationGroupEntity1.First(); + Assert.AreEqual(alreadySavedChildGroup.Name, retainedCalculationGroupEntity.Name); + Assert.AreEqual(1, retainedCalculationGroupEntity.IsEditable); + Assert.AreEqual(0, retainedCalculationGroupEntity.Order); + Assert.AreEqual(alreadySavedChildGroup.StorageId, retainedCalculationGroupEntity.CalculationGroupEntityId); mocks.VerifyAll(); } }