Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/UpdateInfos/RingtoetsUpdateInfoFactoryTest.cs =================================================================== diff -u -r0f065fd28bb73332728fbfccebe7ce647cd008b6 -r47a96e6294e02b226c41cceb2cbf0a4fc41b058c --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/UpdateInfos/RingtoetsUpdateInfoFactoryTest.cs (.../RingtoetsUpdateInfoFactoryTest.cs) (revision 0f065fd28bb73332728fbfccebe7ce647cd008b6) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/UpdateInfos/RingtoetsUpdateInfoFactoryTest.cs (.../RingtoetsUpdateInfoFactoryTest.cs) (revision 47a96e6294e02b226c41cceb2cbf0a4fc41b058c) @@ -20,6 +20,7 @@ // All rights reserved. using System; +using System.Linq; using Core.Common.Gui.Plugin; using Core.Common.TestUtil; using Core.Common.Util; @@ -66,17 +67,98 @@ FailureMechanismSectionsContext, TestFailureMechanism, FailureMechanismSectionResult>(sectionResultUpdateStrategy); // Assert - var failureMechanismSectionsContext = new FailureMechanismSectionsContext(new TestFailureMechanism(), assessmentSection); - Assert.IsInstanceOf(updateInfo.CreateFileImporter(failureMechanismSectionsContext, "")); 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.ReferenceLine = new ReferenceLine(); + mocks.ReplayAll(); + + // Call + UpdateInfo updateInfo = RingtoetsUpdateInfoFactory.CreateFailureMechanismSectionsUpdateInfo< + FailureMechanismSectionsContext, TestFailureMechanism, 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.ReferenceLine = new ReferenceLine(); + mocks.ReplayAll(); + + // Call + UpdateInfo updateInfo = RingtoetsUpdateInfoFactory.CreateFailureMechanismSectionsUpdateInfo< + FailureMechanismSectionsContext, TestFailureMechanism, 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_WithoutSetSourcePath_ReturnsIsEnabledFalse() + { + // Setup + var mocks = new MockRepository(); + var sectionResultUpdateStrategy = mocks.Stub>(); + var assessmentSection = mocks.Stub(); + assessmentSection.ReferenceLine = new ReferenceLine(); + mocks.ReplayAll(); + + // Call + UpdateInfo updateInfo = RingtoetsUpdateInfoFactory.CreateFailureMechanismSectionsUpdateInfo< + FailureMechanismSectionsContext, TestFailureMechanism, FailureMechanismSectionResult>(sectionResultUpdateStrategy); + + // Assert + var failureMechanismSectionsContext = new FailureMechanismSectionsContext(new TestFailureMechanism(), assessmentSection); Assert.IsFalse(updateInfo.IsEnabled(failureMechanismSectionsContext)); + mocks.VerifyAll(); + } + [Test] + public void CreateFailureMechanismSectionsUpdateInfo_WithoutSetSourcePath_ReturnsNullPath() + { + // Setup + var mocks = new MockRepository(); + var sectionResultUpdateStrategy = mocks.Stub>(); + var assessmentSection = mocks.Stub(); + assessmentSection.ReferenceLine = new ReferenceLine(); + mocks.ReplayAll(); + + // Call + UpdateInfo updateInfo = RingtoetsUpdateInfoFactory.CreateFailureMechanismSectionsUpdateInfo< + FailureMechanismSectionsContext, TestFailureMechanism, FailureMechanismSectionResult>(sectionResultUpdateStrategy); + + // Assert + var failureMechanismSectionsContext = new FailureMechanismSectionsContext(new TestFailureMechanism(), assessmentSection); + Assert.IsNull(updateInfo.CurrentPath(failureMechanismSectionsContext)); mocks.VerifyAll(); } }