Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/FailureMechanismBaseUpdateExtensions.cs =================================================================== diff -u -r219f8633c1b5b24f9e9aec3e903734fa94775f0e -r0b923cebc12005d3fec5e5b6830276f1a758928b --- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/FailureMechanismBaseUpdateExtensions.cs (.../FailureMechanismBaseUpdateExtensions.cs) (revision 219f8633c1b5b24f9e9aec3e903734fa94775f0e) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/FailureMechanismBaseUpdateExtensions.cs (.../FailureMechanismBaseUpdateExtensions.cs) (revision 0b923cebc12005d3fec5e5b6830276f1a758928b) @@ -77,6 +77,17 @@ } } + /// + /// Gets the based on the . + /// + /// The failure mechanism corresponding with the failure mechanism entity. + /// The context to obtain the existing entity from. + /// The stored . + /// Thrown when either: + /// + /// the couldn't be found in the + /// more than one was found in the + /// internal static FailureMechanismEntity GetSingleFailureMechanism(this IFailureMechanism mechanism, IRingtoetsEntities context) { try Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismBaseUpdateExtensionsTest.cs =================================================================== diff -u -r71123d9c364c97a5ef2eec81acd1bf877a1297b0 -r0b923cebc12005d3fec5e5b6830276f1a758928b --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismBaseUpdateExtensionsTest.cs (.../FailureMechanismBaseUpdateExtensionsTest.cs) (revision 71123d9c364c97a5ef2eec81acd1bf877a1297b0) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismBaseUpdateExtensionsTest.cs (.../FailureMechanismBaseUpdateExtensionsTest.cs) (revision 0b923cebc12005d3fec5e5b6830276f1a758928b) @@ -24,6 +24,7 @@ using Application.Ringtoets.Storage.Create; using Application.Ringtoets.Storage.DbContext; +using Application.Ringtoets.Storage.Exceptions; using Application.Ringtoets.Storage.TestUtil; using Application.Ringtoets.Storage.Update; using Core.Common.Base.Geometry; @@ -165,6 +166,81 @@ Assert.AreEqual(testName, failureMechanismEntity.FailureMechanismSectionEntities.ElementAt(0).Name); mocks.VerifyAll(); - } + } + + [Test] + public void GetSingleFailureMechanism_ContextWithoutFailureMechanismEntityForId_ThrowsEntityNotFoundException() + { + // Setup + using (RingtoetsEntities ringtoetsEntities = new RingtoetsEntities()) + { + IFailureMechanism failureMechanism = new TestFailureMechanism(); + + // Call + TestDelegate test = () => failureMechanism.GetSingleFailureMechanism(ringtoetsEntities); + + // Assert + Assert.Throws(test); + } + } + + [Test] + public void GetSingleFailureMechanism_ContextWithMultipleFailureMechanismEntityForId_ThrowsEntityNotFoundException() + { + // Setup + MockRepository mocks = new MockRepository(); + var ringtoetsEntities = RingtoetsEntitiesHelper.Create(mocks); + mocks.ReplayAll(); + + long testId = new Random(21).Next(); + var expectedEntity = new FailureMechanismEntity + { + FailureMechanismEntityId = testId + }; + + ringtoetsEntities.FailureMechanismEntities.Add(expectedEntity); + ringtoetsEntities.FailureMechanismEntities.Add(expectedEntity); + IFailureMechanism failureMechanism = new TestFailureMechanism + { + StorageId = testId + }; + + // Call + TestDelegate test = () => failureMechanism.GetSingleFailureMechanism(ringtoetsEntities); + + // Assert + Assert.Throws(test); + + mocks.VerifyAll(); + } + + [Test] + public void GetSingleFailureMechanism_ContextWithFailureMechanismEntityForId_ReturnsEntityFromContext() + { + // Setup + MockRepository mocks = new MockRepository(); + var ringtoetsEntities = RingtoetsEntitiesHelper.Create(mocks); + mocks.ReplayAll(); + + long testId = new Random(21).Next(); + var expectedEntity = new FailureMechanismEntity + { + FailureMechanismEntityId = testId + }; + + ringtoetsEntities.FailureMechanismEntities.Add(expectedEntity); + IFailureMechanism failureMechanism = new TestFailureMechanism + { + StorageId = testId + }; + + // Call + FailureMechanismEntity entity = failureMechanism.GetSingleFailureMechanism(ringtoetsEntities); + + // Assert + Assert.AreSame(expectedEntity, entity); + + mocks.VerifyAll(); + } } } \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/PipingGuiPluginTest.cs =================================================================== diff -u -ra61d9a646a09ddee65775c179bba12c40003cf84 -r0b923cebc12005d3fec5e5b6830276f1a758928b --- Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/PipingGuiPluginTest.cs (.../PipingGuiPluginTest.cs) (revision a61d9a646a09ddee65775c179bba12c40003cf84) +++ Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/PipingGuiPluginTest.cs (.../PipingGuiPluginTest.cs) (revision 0b923cebc12005d3fec5e5b6830276f1a758928b) @@ -20,7 +20,6 @@ // All rights reserved. using System; -using System.Collections.Generic; using System.Linq; using Core.Common.Base.Plugin; using Core.Common.Controls.TreeView;