Index: Riskeer/Piping/src/Riskeer.Piping.Plugin/UpdateInfos/PipingUpdateInfoFactory.cs =================================================================== diff -u -r77da9d16daecbde13e5ff5270ce21f5aa1311b06 -r5624d548884a7ff425b645b3efb285cd184cf444 --- Riskeer/Piping/src/Riskeer.Piping.Plugin/UpdateInfos/PipingUpdateInfoFactory.cs (.../PipingUpdateInfoFactory.cs) (revision 77da9d16daecbde13e5ff5270ce21f5aa1311b06) +++ Riskeer/Piping/src/Riskeer.Piping.Plugin/UpdateInfos/PipingUpdateInfoFactory.cs (.../PipingUpdateInfoFactory.cs) (revision 5624d548884a7ff425b645b3efb285cd184cf444) @@ -37,12 +37,22 @@ /// public static class PipingUpdateInfoFactory { - /// + /// /// Creates a object for a . /// + /// The to verify whether changes that are + /// induced by the importer are allowed. /// An object. - public static UpdateInfo CreateFailureMechanismSectionsUpdateInfo() + /// Thrown when + /// is null. + public static UpdateInfo CreateFailureMechanismSectionsUpdateInfo( + Func verifyUpdatesFunc) { + if (verifyUpdatesFunc == null) + { + throw new ArgumentNullException(nameof(verifyUpdatesFunc)); + } + return new UpdateInfo { Name = RiskeerCommonFormsResources.FailureMechanismSections_DisplayName, @@ -58,7 +68,8 @@ filePath, new PipingFailureMechanismSectionUpdateStrategy((PipingFailureMechanism) context.WrappedData, new PipingFailureMechanismSectionResultUpdateStrategy()), - new UpdateMessageProvider()) + new UpdateMessageProvider()), + VerifyUpdates = verifyUpdatesFunc }; } } Index: Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/UpdateInfos/PipingUpdateInfoFactoryTest.cs =================================================================== diff -u -r77da9d16daecbde13e5ff5270ce21f5aa1311b06 -r5624d548884a7ff425b645b3efb285cd184cf444 --- Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/UpdateInfos/PipingUpdateInfoFactoryTest.cs (.../PipingUpdateInfoFactoryTest.cs) (revision 77da9d16daecbde13e5ff5270ce21f5aa1311b06) +++ Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/UpdateInfos/PipingUpdateInfoFactoryTest.cs (.../PipingUpdateInfoFactoryTest.cs) (revision 5624d548884a7ff425b645b3efb285cd184cf444) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using Core.Common.Gui.Plugin; using Core.Common.TestUtil; using Core.Common.Util; @@ -37,19 +38,31 @@ public class PipingUpdateInfoFactoryTest { [Test] + public void CreateFailureMechanismSectionsUpdateInfo_VerifyUpdatesFuncNull_ThrowsArgumentNullException() + { + // Call + void Call() => PipingUpdateInfoFactory.CreateFailureMechanismSectionsUpdateInfo(null); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("verifyUpdatesFunc", exception.ParamName); + } + + [Test] [TestCase(true)] [TestCase(false)] - public void CreateFailureMechanismSectionsImportInfo_WithData_ReturnsImportInfo(bool isEnabled) + public void CreateFailureMechanismSectionsUpdateInfo_WithData_ReturnsUpdateInfo(bool isEnabled) { // Setup PipingFailureMechanism failureMechanism = isEnabled ? TestPipingFailureMechanism.GetFailureMechanismWithSurfaceLinesAndStochasticSoilModels() : new PipingFailureMechanism(); var context = new PipingFailureMechanismSectionsContext(failureMechanism, new AssessmentSectionStub()); + Func verifyUpdatesFunc = c => true; // Call - UpdateInfo updateInfo = PipingUpdateInfoFactory.CreateFailureMechanismSectionsUpdateInfo(); + UpdateInfo updateInfo = PipingUpdateInfoFactory.CreateFailureMechanismSectionsUpdateInfo(verifyUpdatesFunc); // Assert Assert.AreEqual("Vakindeling", updateInfo.Name); @@ -63,6 +76,7 @@ Assert.AreEqual(failureMechanism.FailureMechanismSectionSourcePath, updateInfo.CurrentPath(context)); Assert.AreEqual(isEnabled, updateInfo.IsEnabled(context)); Assert.IsInstanceOf(updateInfo.CreateFileImporter(context, "")); + Assert.AreSame(verifyUpdatesFunc, updateInfo.VerifyUpdates); } } } \ No newline at end of file