Index: Ringtoets/Common/src/Ringtoets.Common.IO/FileImporters/FailureMechanismSectionReplaceStrategy.cs =================================================================== diff -u -r47a96e6294e02b226c41cceb2cbf0a4fc41b058c -rb0bfd022ad9960dc878810c36dfc10ee2046b7b6 --- Ringtoets/Common/src/Ringtoets.Common.IO/FileImporters/FailureMechanismSectionReplaceStrategy.cs (.../FailureMechanismSectionReplaceStrategy.cs) (revision 47a96e6294e02b226c41cceb2cbf0a4fc41b058c) +++ Ringtoets/Common/src/Ringtoets.Common.IO/FileImporters/FailureMechanismSectionReplaceStrategy.cs (.../FailureMechanismSectionReplaceStrategy.cs) (revision b0bfd022ad9960dc878810c36dfc10ee2046b7b6) @@ -67,7 +67,7 @@ { failureMechanism.SetSections(importedFailureMechanismSections, sourcePath); } - catch (Exception e) + catch (ArgumentException e) { throw new UpdateDataException(e.Message, e); } Index: Ringtoets/Common/src/Ringtoets.Common.IO/FileImporters/FailureMechanismSectionUpdateStrategy.cs =================================================================== diff -u -r47a96e6294e02b226c41cceb2cbf0a4fc41b058c -rb0bfd022ad9960dc878810c36dfc10ee2046b7b6 --- Ringtoets/Common/src/Ringtoets.Common.IO/FileImporters/FailureMechanismSectionUpdateStrategy.cs (.../FailureMechanismSectionUpdateStrategy.cs) (revision 47a96e6294e02b226c41cceb2cbf0a4fc41b058c) +++ Ringtoets/Common/src/Ringtoets.Common.IO/FileImporters/FailureMechanismSectionUpdateStrategy.cs (.../FailureMechanismSectionUpdateStrategy.cs) (revision b0bfd022ad9960dc878810c36dfc10ee2046b7b6) @@ -41,7 +41,7 @@ /// /// Creates a new instance of . /// - /// The to update the secitons for. + /// The to update the sections for. /// The to use when updating /// the section results. /// Thrown when any parameter is null. @@ -81,7 +81,7 @@ { failureMechanism.SetSections(importedFailureMechanismSections, sourcePath); } - catch (Exception e) + catch (ArgumentException e) { throw new UpdateDataException(e.Message, e); } Index: Ringtoets/Common/src/Ringtoets.Common.IO/FileImporters/FailureMechanismSectionsImporter.cs =================================================================== diff -u -r47a96e6294e02b226c41cceb2cbf0a4fc41b058c -rb0bfd022ad9960dc878810c36dfc10ee2046b7b6 --- Ringtoets/Common/src/Ringtoets.Common.IO/FileImporters/FailureMechanismSectionsImporter.cs (.../FailureMechanismSectionsImporter.cs) (revision 47a96e6294e02b226c41cceb2cbf0a4fc41b058c) +++ Ringtoets/Common/src/Ringtoets.Common.IO/FileImporters/FailureMechanismSectionsImporter.cs (.../FailureMechanismSectionsImporter.cs) (revision b0bfd022ad9960dc878810c36dfc10ee2046b7b6) @@ -162,14 +162,10 @@ { return new FailureMechanismSectionReader(FilePath); } - catch (CriticalFileReadException exception) + catch (Exception exception) when (exception is CriticalFileReadException || exception is ArgumentException) { LogCriticalError(exception.Message); } - catch (ArgumentException exception) - { - LogCriticalError(exception.Message); - } return null; } Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/UpdateInfos/RingtoetsUpdateInfoFactoryTest.cs =================================================================== diff -u -r47a96e6294e02b226c41cceb2cbf0a4fc41b058c -rb0bfd022ad9960dc878810c36dfc10ee2046b7b6 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/UpdateInfos/RingtoetsUpdateInfoFactoryTest.cs (.../RingtoetsUpdateInfoFactoryTest.cs) (revision 47a96e6294e02b226c41cceb2cbf0a4fc41b058c) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/UpdateInfos/RingtoetsUpdateInfoFactoryTest.cs (.../RingtoetsUpdateInfoFactoryTest.cs) (revision b0bfd022ad9960dc878810c36dfc10ee2046b7b6) @@ -123,7 +123,7 @@ } [Test] - public void CreateFailureMechanismSectionsUpdateInfo_WithoutSetSourcePath_ReturnsIsEnabledFalse() + public void CreateFailureMechanismSectionsUpdateInfo_WithSourcePath_ReturnsSourcePath() { // Setup var mocks = new MockRepository(); @@ -137,13 +137,36 @@ FailureMechanismSectionsContext, TestFailureMechanism, 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.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() + public void CreateFailureMechanismSectionsUpdateInfo_WithoutSourcePath_ReturnsNullPath() { // Setup var mocks = new MockRepository(); Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/FileImporters/FailureMechanismSectionUpdateStrategyTest.cs =================================================================== diff -u -r47a96e6294e02b226c41cceb2cbf0a4fc41b058c -rb0bfd022ad9960dc878810c36dfc10ee2046b7b6 --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/FileImporters/FailureMechanismSectionUpdateStrategyTest.cs (.../FailureMechanismSectionUpdateStrategyTest.cs) (revision 47a96e6294e02b226c41cceb2cbf0a4fc41b058c) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/FileImporters/FailureMechanismSectionUpdateStrategyTest.cs (.../FailureMechanismSectionUpdateStrategyTest.cs) (revision b0bfd022ad9960dc878810c36dfc10ee2046b7b6) @@ -27,7 +27,6 @@ using Core.Common.TestUtil; using NUnit.Framework; using Rhino.Mocks; -using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.Exceptions; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.TestUtil; @@ -133,7 +132,7 @@ // Setup string sourcePath = TestHelper.GetScratchPadPath(); - var failureMechanism = new TestUpdateFailureMechanism(); + var failureMechanism = new TestFailureMechanism(); FailureMechanismSection failureMechanismSection1 = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(new[] { new Point2D(0.0, 0.0), @@ -150,11 +149,11 @@ failureMechanismSection2 }, sourcePath); - IObservableEnumerable failureMechanismSectionResults = failureMechanism.SectionResults; - TestFailureMechanismSectionResult oldSectionResult = failureMechanismSectionResults.First(); + IObservableEnumerable failureMechanismSectionResults = failureMechanism.SectionResults; + FailureMechanismSectionResult oldSectionResult = failureMechanismSectionResults.First(); var sectionResultUpdateStrategy = new TestUpdateFailureMechanismSectionResultUpdateStrategy(); - var failureMechanismSectionUpdateStrategy = new FailureMechanismSectionUpdateStrategy(failureMechanism, sectionResultUpdateStrategy); + var failureMechanismSectionUpdateStrategy = new FailureMechanismSectionUpdateStrategy(failureMechanism, sectionResultUpdateStrategy); FailureMechanismSection[] sections = { @@ -189,7 +188,7 @@ // Setup string sourcePath = TestHelper.GetScratchPadPath(); - var failureMechanism = new TestUpdateFailureMechanism(); + var failureMechanism = new TestFailureMechanism(); FailureMechanismSection failureMechanismSection1 = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(new[] { new Point2D(0.0, 0.0), @@ -202,7 +201,7 @@ }); var sectionResultUpdateStrategy = new TestUpdateFailureMechanismSectionResultUpdateStrategy(); - var failureMechanismSectionUpdateStrategy = new FailureMechanismSectionUpdateStrategy(failureMechanism, sectionResultUpdateStrategy); + var failureMechanismSectionUpdateStrategy = new FailureMechanismSectionUpdateStrategy(failureMechanism, sectionResultUpdateStrategy); FailureMechanismSection[] sections = { @@ -227,14 +226,14 @@ const string oldSourcePath = "old/path"; string sourcePath = TestHelper.GetScratchPadPath(); - var failureMechanism = new TestUpdateFailureMechanism(); + var failureMechanism = new TestFailureMechanism(); failureMechanism.SetSections(new[] { FailureMechanismSectionTestFactory.CreateFailureMechanismSection() }, oldSourcePath); var sectionResultUpdateStrategy = new TestUpdateFailureMechanismSectionResultUpdateStrategy(); - var failureMechanismSectionUpdateStrategy = new FailureMechanismSectionUpdateStrategy( + var failureMechanismSectionUpdateStrategy = new FailureMechanismSectionUpdateStrategy( failureMechanism, sectionResultUpdateStrategy); // Precondition @@ -251,44 +250,14 @@ Assert.IsFalse(sectionResultUpdateStrategy.Updated); } - private class TestUpdateFailureMechanism : FailureMechanismBase, IHasSectionResults + private class TestUpdateFailureMechanismSectionResultUpdateStrategy : IFailureMechanismSectionResultUpdateStrategy { - private readonly ObservableList sectionResults; + public bool Updated { get; private set; } + public FailureMechanismSectionResult Origin { get; private set; } + public FailureMechanismSectionResult Target { get; private set; } - public TestUpdateFailureMechanism() : base("Test", "TST", 2) + public void UpdateSectionResult(FailureMechanismSectionResult origin, FailureMechanismSectionResult target) { - sectionResults = new ObservableList(); - } - - public override IEnumerable Calculations { get; } - - public IObservableEnumerable SectionResults - { - get - { - return sectionResults; - } - } - - protected override void AddSectionResult(FailureMechanismSection section) - { - sectionResults.Add(new TestFailureMechanismSectionResult(section)); - } - - protected override void ClearSectionResults() - { - sectionResults.Clear(); - } - } - - private class TestUpdateFailureMechanismSectionResultUpdateStrategy : IFailureMechanismSectionResultUpdateStrategy - { - public bool Updated { get; set; } - public TestFailureMechanismSectionResult Origin { get; set; } - public TestFailureMechanismSectionResult Target { get; set; } - - public void UpdateSectionResult(TestFailureMechanismSectionResult origin, TestFailureMechanismSectionResult target) - { Updated = true; Origin = origin; Target = target; Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/FileImporters/FailureMechanismSectionsImporterTest.cs =================================================================== diff -u -r47a96e6294e02b226c41cceb2cbf0a4fc41b058c -rb0bfd022ad9960dc878810c36dfc10ee2046b7b6 --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/FileImporters/FailureMechanismSectionsImporterTest.cs (.../FailureMechanismSectionsImporterTest.cs) (revision 47a96e6294e02b226c41cceb2cbf0a4fc41b058c) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/FileImporters/FailureMechanismSectionsImporterTest.cs (.../FailureMechanismSectionsImporterTest.cs) (revision b0bfd022ad9960dc878810c36dfc10ee2046b7b6) @@ -125,7 +125,7 @@ [Test] [TestCase("traject_1-1.shp", "traject_1-1_vakken.shp", 62)] [TestCase("traject_19-1.shp", "traject_19-1_vakken.shp", 17)] - public void Import_ValidFileCorrespondingToReferenceLineAndNoSectionImportedYet_CallsUpdateStrategy(string referenceLineFileName, string sectionsFileName, int sectionCount) + public void Import_ValidFileCorrespondingToReferenceLine_CallsUpdateStrategy(string referenceLineFileName, string sectionsFileName, int sectionCount) { // Setup var mocks = new MockRepository(); @@ -160,7 +160,7 @@ [TestCase("StartSectionReversedCoordinates")] [TestCase("EndSectionReversedCoordinates")] [TestCase("InBetweenSectionReversedCoordinates")] - public void Import_ValidArtificialFileWithReversedSectionCoordinatesImperfectlyCorrespondingToReferenceLineAndNoSectionImportedYet_CallsUpdateStrategy( + public void Import_ValidArtificialFileWithReversedSectionCoordinatesImperfectlyCorrespondingToReferenceLine_CallsUpdateStrategy( string affectedSection) { // Setup