Index: Riskeer/Common/src/Riskeer.Common.Forms/UpdateInfos/RiskeerUpdateInfoFactory.cs
===================================================================
diff -u -rd07611d7e455e358e7255b2807447412ac56f9c6 -r42e20ff940bd2953e4abdb72b0c941bcc299c948
--- Riskeer/Common/src/Riskeer.Common.Forms/UpdateInfos/RiskeerUpdateInfoFactory.cs (.../RiskeerUpdateInfoFactory.cs) (revision d07611d7e455e358e7255b2807447412ac56f9c6)
+++ Riskeer/Common/src/Riskeer.Common.Forms/UpdateInfos/RiskeerUpdateInfoFactory.cs (.../RiskeerUpdateInfoFactory.cs) (revision 42e20ff940bd2953e4abdb72b0c941bcc299c948)
@@ -20,8 +20,8 @@
// All rights reserved.
using System;
-using Core.Gui.Plugin;
using Core.Common.Util;
+using Core.Gui.Plugin;
using Riskeer.Common.Data.FailureMechanism;
using Riskeer.Common.Forms.PresentationObjects;
using Riskeer.Common.Forms.Properties;
@@ -79,5 +79,52 @@
new UpdateMessageProvider())
};
}
+
+ ///
+ /// Creates a object for a .
+ ///
+ /// The type of the failure mechanism sections context
+ /// to create the for.
+ /// The type of the failure mechanism to create
+ /// the for.
+ /// /// The type of the old failure mechanism section result
+ /// to create the for.
+ /// The type of the failure mechanism section result
+ /// to create the for.
+ /// The
+ /// to use for the created .
+ /// An object.
+ /// Thrown when
+ /// is null.
+ public static UpdateInfo CreateFailureMechanismSectionsUpdateInfo(
+ IFailureMechanismSectionResultUpdateStrategy sectionResultUpdateStrategy)
+ where TSectionContext : FailureMechanismSectionsContext
+ where TFailureMechanism : IHasSectionResults
+ where TSectionResultOld : FailureMechanismSectionResultOld
+ where TSectionResult : FailureMechanismSectionResult
+ {
+ if (sectionResultUpdateStrategy == null)
+ {
+ throw new ArgumentNullException(nameof(sectionResultUpdateStrategy));
+ }
+
+ return new UpdateInfo
+ {
+ Name = Resources.FailureMechanismSections_DisplayName,
+ Category = Resources.Riskeer_Category,
+ Image = Resources.SectionsIcon,
+ FileFilterGenerator = new FileFilterGenerator(RiskeerCommonIOResources.Shape_file_filter_Extension,
+ RiskeerCommonIOResources.Shape_file_filter_Description),
+ IsEnabled = context => context.WrappedData.FailureMechanismSectionSourcePath != null,
+ CurrentPath = context => context.WrappedData.FailureMechanismSectionSourcePath,
+ CreateFileImporter = (context, filePath) => new FailureMechanismSectionsImporter(
+ context.WrappedData,
+ context.AssessmentSection.ReferenceLine,
+ filePath,
+ new FailureMechanismSectionUpdateStrategy(
+ (TFailureMechanism) context.WrappedData, sectionResultUpdateStrategy),
+ new UpdateMessageProvider())
+ };
+ }
}
}
\ No newline at end of file
Index: Riskeer/Common/test/Riskeer.Common.Forms.Test/UpdateInfos/RiskeerUpdateInfoFactoryTest.cs
===================================================================
diff -u -rd07611d7e455e358e7255b2807447412ac56f9c6 -r42e20ff940bd2953e4abdb72b0c941bcc299c948
--- Riskeer/Common/test/Riskeer.Common.Forms.Test/UpdateInfos/RiskeerUpdateInfoFactoryTest.cs (.../RiskeerUpdateInfoFactoryTest.cs) (revision d07611d7e455e358e7255b2807447412ac56f9c6)
+++ Riskeer/Common/test/Riskeer.Common.Forms.Test/UpdateInfos/RiskeerUpdateInfoFactoryTest.cs (.../RiskeerUpdateInfoFactoryTest.cs) (revision 42e20ff940bd2953e4abdb72b0c941bcc299c948)
@@ -21,9 +21,9 @@
using System;
using System.Linq;
-using Core.Gui.Plugin;
using Core.Common.TestUtil;
using Core.Common.Util;
+using Core.Gui.Plugin;
using NUnit.Framework;
using Rhino.Mocks;
using Riskeer.Common.Data.AssessmentSection;
@@ -40,20 +40,19 @@
public class RiskeerUpdateInfoFactoryTest
{
[Test]
- public void CreateFailureMechanismSectionsUpdateInfo_SectionResultUpdateStrategyNull_ThrowsArgumentNullException()
+ public void OldCreateFailureMechanismSectionsUpdateInfo_SectionResultUpdateStrategyNull_ThrowsArgumentNullException()
{
// Call
- TestDelegate call = () => RiskeerUpdateInfoFactory.CreateFailureMechanismSectionsUpdateInfo<
+ void Call() => RiskeerUpdateInfoFactory.CreateFailureMechanismSectionsUpdateInfo<
FailureMechanismSectionsContext, TestFailureMechanism, FailureMechanismSectionResultOld>(null);
// Assert
- // Assert
- string paramName = Assert.Throws(call).ParamName;
- Assert.AreEqual("sectionResultUpdateStrategy", paramName);
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("sectionResultUpdateStrategy", exception.ParamName);
}
[Test]
- public void CreateFailureMechanismSectionsUpdateInfo_WithArguments_ExpectedPropertiesSet()
+ public void OldCreateFailureMechanismSectionsUpdateInfo_WithArguments_ExpectedPropertiesSet()
{
// Setup
var mocks = new MockRepository();
@@ -80,7 +79,7 @@
}
[Test]
- public void CreateFailureMechanismSectionsUpdateInfo_WithArguments_ReturnsExpectedCreatedFileImporter()
+ public void OldCreateFailureMechanismSectionsUpdateInfo_WithArguments_ReturnsExpectedCreatedFileImporter()
{
// Setup
var mocks = new MockRepository();
@@ -101,7 +100,7 @@
}
[Test]
- public void CreateFailureMechanismSectionsUpdateInfo_WithSourcePath_ReturnsIsEnabledTrue()
+ public void OldCreateFailureMechanismSectionsUpdateInfo_WithSourcePath_ReturnsIsEnabledTrue()
{
// Setup
var mocks = new MockRepository();
@@ -123,7 +122,7 @@
}
[Test]
- public void CreateFailureMechanismSectionsUpdateInfo_WithSourcePath_ReturnsSourcePath()
+ public void OldCreateFailureMechanismSectionsUpdateInfo_WithSourcePath_ReturnsSourcePath()
{
// Setup
var mocks = new MockRepository();
@@ -146,7 +145,7 @@
}
[Test]
- public void CreateFailureMechanismSectionsUpdateInfo_WithoutSourcePath_ReturnsIsEnabledFalse()
+ public void OldCreateFailureMechanismSectionsUpdateInfo_WithoutSourcePath_ReturnsIsEnabledFalse()
{
// Setup
var mocks = new MockRepository();
@@ -166,7 +165,7 @@
}
[Test]
- public void CreateFailureMechanismSectionsUpdateInfo_WithoutSourcePath_ReturnsNullPath()
+ public void OldCreateFailureMechanismSectionsUpdateInfo_WithoutSourcePath_ReturnsNullPath()
{
// Setup
var mocks = new MockRepository();
@@ -184,5 +183,150 @@
Assert.IsNull(updateInfo.CurrentPath(failureMechanismSectionsContext));
mocks.VerifyAll();
}
+
+ [Test]
+ public void CreateFailureMechanismSectionsUpdateInfo_SectionResultUpdateStrategyNull_ThrowsArgumentNullException()
+ {
+ // Call
+ void Call() => RiskeerUpdateInfoFactory.CreateFailureMechanismSectionsUpdateInfo<
+ FailureMechanismSectionsContext, TestFailureMechanism, FailureMechanismSectionResultOld, FailureMechanismSectionResult>(null);
+
+ // Assert
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("sectionResultUpdateStrategy", exception.ParamName);
+ }
+
+ [Test]
+ public void CreateFailureMechanismSectionsUpdateInfo_WithArguments_ExpectedPropertiesSet()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var sectionResultUpdateStrategy = mocks.Stub>();
+ var assessmentSection = mocks.Stub();
+ assessmentSection.Stub(a => a.ReferenceLine).Return(new ReferenceLine());
+ mocks.ReplayAll();
+
+ // Call
+ UpdateInfo updateInfo = RiskeerUpdateInfoFactory.CreateFailureMechanismSectionsUpdateInfo<
+ FailureMechanismSectionsContext, TestFailureMechanism, FailureMechanismSectionResultOld, FailureMechanismSectionResult>(sectionResultUpdateStrategy);
+
+ // Assert
+ Assert.AreEqual("Vakindeling", updateInfo.Name);
+ Assert.AreEqual("Algemeen", updateInfo.Category);
+
+ FileFilterGenerator fileFilterGenerator = updateInfo.FileFilterGenerator;
+ Assert.AreEqual("Shapebestand (*.shp)|*.shp", fileFilterGenerator.Filter);
+
+ TestHelper.AssertImagesAreEqual(Resources.SectionsIcon, updateInfo.Image);
+ Assert.IsNull(updateInfo.VerifyUpdates);
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void CreateFailureMechanismSectionsUpdateInfo_WithArguments_ReturnsExpectedCreatedFileImporter()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var sectionResultUpdateStrategy = mocks.Stub>();
+ var assessmentSection = mocks.Stub();
+ assessmentSection.Stub(a => a.ReferenceLine).Return(new ReferenceLine());
+ mocks.ReplayAll();
+
+ // Call
+ UpdateInfo updateInfo = RiskeerUpdateInfoFactory.CreateFailureMechanismSectionsUpdateInfo<
+ FailureMechanismSectionsContext, TestFailureMechanism, FailureMechanismSectionResultOld, FailureMechanismSectionResult>(sectionResultUpdateStrategy);
+
+ // Assert
+ var failureMechanismSectionsContext = new FailureMechanismSectionsContext(new TestFailureMechanism(), assessmentSection);
+ Assert.IsInstanceOf(updateInfo.CreateFileImporter(failureMechanismSectionsContext, ""));
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void CreateFailureMechanismSectionsUpdateInfo_WithSourcePath_ReturnsIsEnabledTrue()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var sectionResultUpdateStrategy = mocks.Stub>();
+ var assessmentSection = mocks.Stub();
+ assessmentSection.Stub(a => a.ReferenceLine).Return(new ReferenceLine());
+ mocks.ReplayAll();
+
+ // Call
+ UpdateInfo updateInfo = RiskeerUpdateInfoFactory.CreateFailureMechanismSectionsUpdateInfo<
+ FailureMechanismSectionsContext, TestFailureMechanism, FailureMechanismSectionResultOld, FailureMechanismSectionResult>(sectionResultUpdateStrategy);
+
+ // Assert
+ var testFailureMechanism = new TestFailureMechanism();
+ testFailureMechanism.SetSections(Enumerable.Empty(), "path/to/sections");
+ var failureMechanismSectionsContext = new FailureMechanismSectionsContext(testFailureMechanism, assessmentSection);
+ Assert.IsTrue(updateInfo.IsEnabled(failureMechanismSectionsContext));
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void CreateFailureMechanismSectionsUpdateInfo_WithSourcePath_ReturnsSourcePath()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var sectionResultUpdateStrategy = mocks.Stub>();
+ var assessmentSection = mocks.Stub();
+ assessmentSection.Stub(a => a.ReferenceLine).Return(new ReferenceLine());
+ mocks.ReplayAll();
+
+ // Call
+ UpdateInfo updateInfo = RiskeerUpdateInfoFactory.CreateFailureMechanismSectionsUpdateInfo<
+ FailureMechanismSectionsContext, TestFailureMechanism, FailureMechanismSectionResultOld, FailureMechanismSectionResult>(sectionResultUpdateStrategy);
+
+ // Assert
+ var testFailureMechanism = new TestFailureMechanism();
+ testFailureMechanism.SetSections(Enumerable.Empty(), "path/to/sections");
+ var failureMechanismSectionsContext = new FailureMechanismSectionsContext(testFailureMechanism, assessmentSection);
+ Assert.AreEqual(testFailureMechanism.FailureMechanismSectionSourcePath,
+ updateInfo.CurrentPath(failureMechanismSectionsContext));
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void CreateFailureMechanismSectionsUpdateInfo_WithoutSourcePath_ReturnsIsEnabledFalse()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var sectionResultUpdateStrategy = mocks.Stub>();
+ var assessmentSection = mocks.Stub();
+ assessmentSection.Stub(a => a.ReferenceLine).Return(new ReferenceLine());
+ mocks.ReplayAll();
+
+ // Call
+ UpdateInfo updateInfo = RiskeerUpdateInfoFactory.CreateFailureMechanismSectionsUpdateInfo<
+ FailureMechanismSectionsContext, TestFailureMechanism, FailureMechanismSectionResultOld, FailureMechanismSectionResult>(sectionResultUpdateStrategy);
+
+ // Assert
+ var failureMechanismSectionsContext = new FailureMechanismSectionsContext(new TestFailureMechanism(), assessmentSection);
+ Assert.IsFalse(updateInfo.IsEnabled(failureMechanismSectionsContext));
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void CreateFailureMechanismSectionsUpdateInfo_WithoutSourcePath_ReturnsNullPath()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var sectionResultUpdateStrategy = mocks.Stub>();
+ var assessmentSection = mocks.Stub();
+ assessmentSection.Stub(a => a.ReferenceLine).Return(new ReferenceLine());
+ mocks.ReplayAll();
+
+ // Call
+ UpdateInfo updateInfo = RiskeerUpdateInfoFactory.CreateFailureMechanismSectionsUpdateInfo<
+ FailureMechanismSectionsContext, TestFailureMechanism, FailureMechanismSectionResultOld, FailureMechanismSectionResult>(sectionResultUpdateStrategy);
+
+ // Assert
+ var failureMechanismSectionsContext = new FailureMechanismSectionsContext(new TestFailureMechanism(), assessmentSection);
+ Assert.IsNull(updateInfo.CurrentPath(failureMechanismSectionsContext));
+ mocks.VerifyAll();
+ }
}
}
\ No newline at end of file