Index: Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoAssessmentSectionCommand.cs
===================================================================
diff -u -r76a7de2e77e45645d0e7e485e03333baf9cc3b0d -r316e741c3eefe3aab13dd070b56654a6bc4c24f1
--- Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoAssessmentSectionCommand.cs (.../AddNewDemoAssessmentSectionCommand.cs) (revision 76a7de2e77e45645d0e7e485e03333baf9cc3b0d)
+++ Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoAssessmentSectionCommand.cs (.../AddNewDemoAssessmentSectionCommand.cs) (revision 316e741c3eefe3aab13dd070b56654a6bc4c24f1)
@@ -542,6 +542,7 @@
{
var surfaceLinesImporter = new PipingSurfaceLinesCsvImporter(pipingFailureMechanism.SurfaceLines,
demoAssessmentSection.ReferenceLine,
+ new RingtoetsPipingSurfaceLineReplaceDataStrategy(),
Path.Combine(embeddedResourceFileWriter.TargetFolderPath,
"DR6_surfacelines.csv"));
surfaceLinesImporter.Import();
Index: Ringtoets/Integration/test/Ringtoets.Integration.TestUtils/DataImportHelper.cs
===================================================================
diff -u -ra59b471e3b6a02319f91b7317b3814a099ef0221 -r316e741c3eefe3aab13dd070b56654a6bc4c24f1
--- Ringtoets/Integration/test/Ringtoets.Integration.TestUtils/DataImportHelper.cs (.../DataImportHelper.cs) (revision a59b471e3b6a02319f91b7317b3814a099ef0221)
+++ Ringtoets/Integration/test/Ringtoets.Integration.TestUtils/DataImportHelper.cs (.../DataImportHelper.cs) (revision 316e741c3eefe3aab13dd070b56654a6bc4c24f1)
@@ -186,7 +186,10 @@
"DR6_surfacelines.krp.csv"))
{
var filePath = Path.Combine(embeddedResourceFileWriter.TargetFolderPath, "DR6_surfacelines.csv");
- var activity = new FileImportActivity(new PipingSurfaceLinesCsvImporter(assessmentSection.PipingFailureMechanism.SurfaceLines, assessmentSection.ReferenceLine, filePath),
+ var activity = new FileImportActivity(new PipingSurfaceLinesCsvImporter(assessmentSection.PipingFailureMechanism.SurfaceLines,
+ assessmentSection.ReferenceLine,
+ new RingtoetsPipingSurfaceLineReplaceDataStrategy(),
+ filePath),
"PipingSurfaceLinesCsvImporter");
activity.Run();
activity.Finish();
Fisheye: Tag 316e741c3eefe3aab13dd070b56654a6bc4c24f1 refers to a dead (removed) revision in file `Ringtoets/Piping/src/Ringtoets.Piping.IO/Importer/ISurfaceLineUpdateStrategy.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Importer/ISurfaceLineUpdateSurfaceLineStrategy.cs
===================================================================
diff -u
--- Ringtoets/Piping/src/Ringtoets.Piping.IO/Importer/ISurfaceLineUpdateSurfaceLineStrategy.cs (revision 0)
+++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Importer/ISurfaceLineUpdateSurfaceLineStrategy.cs (revision 316e741c3eefe3aab13dd070b56654a6bc4c24f1)
@@ -0,0 +1,49 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Collections.Generic;
+using Core.Common.Base;
+using Ringtoets.Piping.Primitives;
+
+namespace Ringtoets.Piping.IO.Importer
+{
+ ///
+ /// Interface describing the method of updating the data model after new surface lines
+ /// have been imported.
+ ///
+ public interface ISurfaceLineUpdateSurfaceLineStrategy
+ {
+ ///
+ /// Adds the imported data to the .
+ ///
+ /// The
+ /// which needs to be updated.
+ /// The imported surface lines.
+ /// The source path from where the surface lines were imported from.
+ /// An of updated instances.
+ /// Thrown when any of the input parameters is null
+ IEnumerable UpdateSurfaceLinesWithImportedData(
+ ObservableCollectionWithSourcePath targetCollection,
+ IEnumerable readRingtoetsPipingSurfaceLines,
+ string sourceFilePath);
+ }
+}
Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Ringtoets.Piping.IO.csproj
===================================================================
diff -u -ree74bbc714b9c3d6b46e7c7734640366ef197ef6 -r316e741c3eefe3aab13dd070b56654a6bc4c24f1
--- Ringtoets/Piping/src/Ringtoets.Piping.IO/Ringtoets.Piping.IO.csproj (.../Ringtoets.Piping.IO.csproj) (revision ee74bbc714b9c3d6b46e7c7734640366ef197ef6)
+++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Ringtoets.Piping.IO.csproj (.../Ringtoets.Piping.IO.csproj) (revision 316e741c3eefe3aab13dd070b56654a6bc4c24f1)
@@ -54,7 +54,7 @@
-
+
Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/PipingSurfaceLinesCsvImporter.cs
===================================================================
diff -u -rd6d1b03ce8dc3c4e6bba565a85ea310f6196adea -r316e741c3eefe3aab13dd070b56654a6bc4c24f1
--- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/PipingSurfaceLinesCsvImporter.cs (.../PipingSurfaceLinesCsvImporter.cs) (revision d6d1b03ce8dc3c4e6bba565a85ea310f6196adea)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/PipingSurfaceLinesCsvImporter.cs (.../PipingSurfaceLinesCsvImporter.cs) (revision 316e741c3eefe3aab13dd070b56654a6bc4c24f1)
@@ -30,6 +30,7 @@
using Core.Common.IO.Readers;
using log4net;
using Ringtoets.Common.Data.AssessmentSection;
+using Ringtoets.Piping.IO.Importer;
using Ringtoets.Piping.IO.SurfaceLines;
using Ringtoets.Piping.Plugin.Properties;
using Ringtoets.Piping.Primitives;
@@ -53,6 +54,7 @@
private const string characteristicPointsFileSubExtension = ".krp";
private const string csvFileExtension = ".csv";
+ private readonly ISurfaceLineUpdateSurfaceLineStrategy surfaceLineUpdateStrategy;
private readonly ILog log = LogManager.GetLogger(typeof(PipingSurfaceLinesCsvImporter));
private readonly ReferenceLine referenceLine;
@@ -62,16 +64,29 @@
///
/// The import target.
/// The reference line.
+ /// The strategy to update the surface lines with imported data.
/// The path to the file to import from.
/// Thrown when
/// or is null.
- public PipingSurfaceLinesCsvImporter(ObservableCollectionWithSourcePath importTarget, ReferenceLine referenceLine, string filePath) : base(filePath, importTarget)
+ public PipingSurfaceLinesCsvImporter(ObservableCollectionWithSourcePath importTarget,
+ ReferenceLine referenceLine,
+ ISurfaceLineUpdateSurfaceLineStrategy surfaceLineUpdateStrategy,
+ string filePath) : base(filePath, importTarget)
{
+ if (importTarget == null)
+ {
+ throw new ArgumentNullException(nameof(importTarget));
+ }
if (referenceLine == null)
{
throw new ArgumentNullException(nameof(referenceLine));
}
+ if (surfaceLineUpdateStrategy == null)
+ {
+ throw new ArgumentNullException(nameof(surfaceLineUpdateStrategy));
+ }
+ this.surfaceLineUpdateStrategy = surfaceLineUpdateStrategy;
this.referenceLine = referenceLine;
}
@@ -96,8 +111,7 @@
return false;
}
- ImportTarget.AddRange(importResults, FilePath);
-
+ surfaceLineUpdateStrategy.UpdateSurfaceLinesWithImportedData(ImportTarget, importResults, FilePath);
return true;
}
Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/RingtoetsPipingSurfaceLineReplaceDataStrategy.cs
===================================================================
diff -u -ree74bbc714b9c3d6b46e7c7734640366ef197ef6 -r316e741c3eefe3aab13dd070b56654a6bc4c24f1
--- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/RingtoetsPipingSurfaceLineReplaceDataStrategy.cs (.../RingtoetsPipingSurfaceLineReplaceDataStrategy.cs) (revision ee74bbc714b9c3d6b46e7c7734640366ef197ef6)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/RingtoetsPipingSurfaceLineReplaceDataStrategy.cs (.../RingtoetsPipingSurfaceLineReplaceDataStrategy.cs) (revision 316e741c3eefe3aab13dd070b56654a6bc4c24f1)
@@ -30,7 +30,7 @@
///
/// Strategy to replace the surface lines with the imported surface lines.
///
- public class RingtoetsPipingSurfaceLineReplaceDataStrategy : ISurfaceLineUpdateStrategy
+ public class RingtoetsPipingSurfaceLineReplaceDataStrategy : ISurfaceLineUpdateSurfaceLineStrategy
{
public IEnumerable UpdateSurfaceLinesWithImportedData(ObservableCollectionWithSourcePath targetCollection,
IEnumerable readRingtoetsPipingSurfaceLines,
Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs
===================================================================
diff -u -r76a7de2e77e45645d0e7e485e03333baf9cc3b0d -r316e741c3eefe3aab13dd070b56654a6bc4c24f1
--- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision 76a7de2e77e45645d0e7e485e03333baf9cc3b0d)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision 316e741c3eefe3aab13dd070b56654a6bc4c24f1)
@@ -106,6 +106,7 @@
IsEnabled = context => context.AssessmentSection.ReferenceLine != null,
CreateFileImporter = (context, filePath) => new PipingSurfaceLinesCsvImporter(context.WrappedData,
context.AssessmentSection.ReferenceLine,
+ new RingtoetsPipingSurfaceLineReplaceDataStrategy(),
filePath)
};
Index: Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/PipingSurfaceLinesCsvImporterTest.cs
===================================================================
diff -u -r580a0557ffdf6af30593c7a94c561b353a0400cb -r316e741c3eefe3aab13dd070b56654a6bc4c24f1
--- Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/PipingSurfaceLinesCsvImporterTest.cs (.../PipingSurfaceLinesCsvImporterTest.cs) (revision 580a0557ffdf6af30593c7a94c561b353a0400cb)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/PipingSurfaceLinesCsvImporterTest.cs (.../PipingSurfaceLinesCsvImporterTest.cs) (revision 316e741c3eefe3aab13dd070b56654a6bc4c24f1)
@@ -20,6 +20,7 @@
// All rights reserved.
using System;
+using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
@@ -31,6 +32,7 @@
using NUnit.Framework;
using Ringtoets.Common.Data.AssessmentSection;
using Ringtoets.Piping.Data;
+using Ringtoets.Piping.IO.Importer;
using Ringtoets.Piping.Plugin.FileImporter;
using Ringtoets.Piping.Primitives;
using PipingIOResources = Ringtoets.Piping.IO.Properties.Resources;
@@ -50,13 +52,65 @@
private readonly string surfaceLineFormat = "{0}.csv";
[Test]
+ public void Constructor_ObservableListNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var referenceLine = new ReferenceLine();
+
+ // Call
+ TestDelegate call = () => new PipingSurfaceLinesCsvImporter(null,
+ referenceLine,
+ new TestSurfaceLineUpdateStrategy(),
+ string.Empty);
+
+ // Assert
+ string parameter = Assert.Throws(call).ParamName;
+ Assert.AreEqual("importTarget", parameter);
+ }
+
+ [Test]
+ public void Constructor_ReferenceLineNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var list = new ObservableCollectionWithSourcePath();
+
+ // Call
+ TestDelegate call = () => new PipingSurfaceLinesCsvImporter(list,
+ null,
+ new TestSurfaceLineUpdateStrategy(),
+ string.Empty);
+
+ // Assert
+ string parameter = Assert.Throws(call).ParamName;
+ Assert.AreEqual("referenceLine", parameter);
+ }
+
+ [Test]
+ public void Constructor_ModelUpdateStrategyNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var list = new ObservableCollectionWithSourcePath();
+ var referenceLine = new ReferenceLine();
+
+ // Call
+ TestDelegate call = () => new PipingSurfaceLinesCsvImporter(list,
+ referenceLine,
+ null,
+ string.Empty);
+
+ // Assert
+ string parameter = Assert.Throws(call).ParamName;
+ Assert.AreEqual("surfaceLineUpdateStrategy", parameter);
+ }
+
+ [Test]
public void DefaultConstructor_ExpectedValues()
{
var collection = new ObservableCollectionWithSourcePath();
var referenceLine = new ReferenceLine();
// Call
- var importer = new PipingSurfaceLinesCsvImporter(collection, referenceLine, "");
+ var importer = new PipingSurfaceLinesCsvImporter(collection, referenceLine, new RingtoetsPipingSurfaceLineReplaceDataStrategy(), "");
// Assert
Assert.IsInstanceOf>>(importer);
@@ -85,7 +139,8 @@
bool progressStarted = false;
bool progressCharacteristicPointsStarted = false;
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, validFilePath);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, validFilePath);
importer.SetProgressChanged(delegate(string currentStepName, int currentStep, int totalNumberOfSteps)
{
if (!progressStarted && callCount == 0)
@@ -126,11 +181,9 @@
bool importResult = importer.Import();
// Assert
- ObservableCollectionWithSourcePath importedSurfaceLines = failureMechanism.SurfaceLines;
- AssertSuccesfulImport(importResult, expectedNumberOfSurfaceLines, validFilePath, importedSurfaceLines);
+ RingtoetsPipingSurfaceLine[] importTargetArray = AssertSuccesfulImport(importResult, expectedNumberOfSurfaceLines, validFilePath, surfaceLineUpdateStrategy);
// Sample some of the imported data:
- RingtoetsPipingSurfaceLine[] importTargetArray = importedSurfaceLines.ToArray();
RingtoetsPipingSurfaceLine firstSurfaceLine = importTargetArray[0];
Assert.AreEqual("Rotterdam1", firstSurfaceLine.Name);
Assert.AreEqual(8, firstSurfaceLine.Points.Length);
@@ -146,7 +199,6 @@
Assert.AreEqual(6, callCount);
Assert.IsTrue(TestHelper.CanOpenFileForWrite(validFilePath));
- Assert.AreEqual(validFilePath, failureMechanism.SurfaceLines.SourcePath);
}
[Test]
@@ -164,9 +216,9 @@
});
var failureMechanism = new PipingFailureMechanism();
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, validFilePath);
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, validFilePath);
-
// Precondition
CollectionAssert.IsEmpty(failureMechanism.SurfaceLines);
Assert.IsTrue(File.Exists(validFilePath));
@@ -188,11 +240,9 @@
};
TestHelper.AssertLogMessagesAreGenerated(call, mesages, 4);
- ObservableCollectionWithSourcePath importedSurfaceLines = failureMechanism.SurfaceLines;
- AssertSuccesfulImport(importResult, 1, validFilePath, importedSurfaceLines);
+ RingtoetsPipingSurfaceLine[] importTargetArray = AssertSuccesfulImport(importResult, 1, validFilePath, surfaceLineUpdateStrategy);
// Sample some of the imported data:
- RingtoetsPipingSurfaceLine[] importTargetArray = importedSurfaceLines.ToArray();
RingtoetsPipingSurfaceLine firstSurfaceLine = importTargetArray[0];
Assert.AreEqual("Rotterdam1", firstSurfaceLine.Name);
var geometryPoints = firstSurfaceLine.Points.ToArray();
@@ -206,7 +256,6 @@
AssertAreEqualPoint2D(new Point2D(94270.0, 427795.313769642), firstSurfaceLine.ReferenceLineIntersectionWorldPoint);
Assert.IsTrue(TestHelper.CanOpenFileForWrite(validFilePath));
- Assert.AreEqual(validFilePath, failureMechanism.SurfaceLines.SourcePath);
}
[Test]
@@ -218,7 +267,8 @@
var referenceLine = new ReferenceLine();
var failureMechanism = new PipingFailureMechanism();
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, validFilePath);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, validFilePath);
importer.SetProgressChanged(delegate(string description, int step, int steps)
{
if (description.Contains("Inlezen van het profielschematisatiesbestand."))
@@ -238,7 +288,7 @@
// Assert
TestHelper.AssertLogMessageIsGenerated(call, "Profielschematisaties importeren afgebroken. Geen data ingelezen.", 3);
- AssertUnsuccessfulImport(importResult, failureMechanism.SurfaceLines);
+ AssertUnsuccessfulImport(importResult, surfaceLineUpdateStrategy);
}
[Test]
@@ -250,7 +300,8 @@
var referenceLine = new ReferenceLine();
var failureMechanism = new PipingFailureMechanism();
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, validFilePath);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, validFilePath);
importer.SetProgressChanged((description, step, steps) =>
{
if (description.Contains("Inlezen van het karakteristieke punten-bestand."))
@@ -270,7 +321,7 @@
// Assert
TestHelper.AssertLogMessageIsGenerated(call, "Profielschematisaties importeren afgebroken. Geen data ingelezen.", 4);
- AssertUnsuccessfulImport(importResult, failureMechanism.SurfaceLines);
+ AssertUnsuccessfulImport(importResult, surfaceLineUpdateStrategy);
}
[Test]
@@ -289,8 +340,8 @@
});
var failureMechanism = new PipingFailureMechanism();
-
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, validFilePath);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, validFilePath);
importer.SetProgressChanged((description, step, steps) =>
{
if (step < steps
@@ -311,7 +362,7 @@
// Assert
TestHelper.AssertLogMessageIsGenerated(call, "Profielschematisaties importeren afgebroken. Geen data ingelezen.", 4);
- AssertUnsuccessfulImport(importResult, failureMechanism.SurfaceLines);
+ AssertUnsuccessfulImport(importResult, surfaceLineUpdateStrategy);
}
[Test]
@@ -331,8 +382,8 @@
});
var failureMechanism = new PipingFailureMechanism();
-
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, validFilePath);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, validFilePath);
importer.SetProgressChanged((description, step, steps) => importer.Cancel());
// Precondition
@@ -349,7 +400,7 @@
importResult = importer.Import();
// Assert
- AssertSuccesfulImport(importResult, expectedNumberOfSurfaceLines, validFilePath, failureMechanism.SurfaceLines);
+ AssertSuccesfulImport(importResult, expectedNumberOfSurfaceLines, validFilePath, surfaceLineUpdateStrategy);
}
[Test]
@@ -360,9 +411,9 @@
string corruptPath = validFilePath.Replace('S', Path.GetInvalidPathChars().First());
var failureMechanism = new PipingFailureMechanism();
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), surfaceLineUpdateStrategy, corruptPath);
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), corruptPath);
-
bool importResult = true;
// Call
@@ -374,7 +425,7 @@
var expectedLogMessage = string.Format(PipingPluginResources.PipingSurfaceLinesCsvImporter_CriticalErrorMessage_0_File_Skipped,
internalErrorMessage);
TestHelper.AssertLogMessageIsGenerated(call, expectedLogMessage, 1);
- AssertUnsuccessfulImport(importResult, failureMechanism.SurfaceLines);
+ AssertUnsuccessfulImport(importResult, surfaceLineUpdateStrategy);
}
[Test]
@@ -385,7 +436,8 @@
var failureMechanism = new PipingFailureMechanism();
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), corruptPath);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), surfaceLineUpdateStrategy, corruptPath);
var importResult = true;
@@ -404,7 +456,7 @@
corruptPath)
};
TestHelper.AssertLogMessagesAreGenerated(call, expectedLogMessages, 3);
- AssertUnsuccessfulImport(importResult, failureMechanism.SurfaceLines);
+ AssertUnsuccessfulImport(importResult, surfaceLineUpdateStrategy);
}
[Test]
@@ -414,9 +466,9 @@
string corruptPath = Path.Combine(ioTestDataPath, "empty.csv");
var failureMechanism = new PipingFailureMechanism();
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), surfaceLineUpdateStrategy, corruptPath);
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), corruptPath);
-
var importResult = true;
// Call
@@ -436,7 +488,7 @@
internalErrorMessage)
};
TestHelper.AssertLogMessagesAreGenerated(call, expectedLogMessages, 3);
- AssertUnsuccessfulImport(importResult, failureMechanism.SurfaceLines);
+ AssertUnsuccessfulImport(importResult, surfaceLineUpdateStrategy);
}
[Test]
@@ -446,9 +498,9 @@
string corruptPath = Path.Combine(ioTestDataPath, "InvalidHeader_LacksY1.csv");
var failureMechanism = new PipingFailureMechanism();
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), surfaceLineUpdateStrategy, corruptPath);
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), corruptPath);
-
bool importResult = true;
// Call
@@ -468,7 +520,7 @@
corruptPath)
};
TestHelper.AssertLogMessagesAreGenerated(call, expectedLogMessages, 3);
- AssertUnsuccessfulImport(importResult, failureMechanism.SurfaceLines);
+ AssertUnsuccessfulImport(importResult, surfaceLineUpdateStrategy);
}
[Test]
@@ -482,8 +534,8 @@
try
{
var failureMechanism = new PipingFailureMechanism();
-
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), copyTargetPath);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), surfaceLineUpdateStrategy, copyTargetPath);
importer.SetProgressChanged((name, step, steps) =>
{
// Delete the file being read by the import during the import itself:
@@ -507,7 +559,7 @@
internalErrorMessage)
};
TestHelper.AssertLogMessagesAreGenerated(call, expectedLogMessages, 3);
- AssertUnsuccessfulImport(importResult, failureMechanism.SurfaceLines);
+ AssertUnsuccessfulImport(importResult, surfaceLineUpdateStrategy);
}
finally
{
@@ -535,9 +587,9 @@
});
var failureMechanism = new PipingFailureMechanism();
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, corruptPath);
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, corruptPath);
-
var importResult = true;
// Call
@@ -558,9 +610,9 @@
TestHelper.AssertLogMessagesAreGenerated(call, expectedLogMessages, 4);
- AssertSuccesfulImport(importResult, 1, corruptPath, failureMechanism.SurfaceLines);
- Assert.AreEqual(1, failureMechanism.SurfaceLines.Count(sl => sl.Name == "Rotterdam1"));
- Assert.AreEqual(3, failureMechanism.SurfaceLines.First(sl => sl.Name == "Rotterdam1").Points.Length, "First line should have been added to the model.");
+ RingtoetsPipingSurfaceLine[] importedSurfaceLines = AssertSuccesfulImport(importResult, 1, corruptPath, surfaceLineUpdateStrategy);
+ Assert.AreEqual(1, importedSurfaceLines.Count(sl => sl.Name == "Rotterdam1"));
+ Assert.AreEqual(3, importedSurfaceLines.First(sl => sl.Name == "Rotterdam1").Points.Length, "First line should have been added to the model.");
}
[Test]
@@ -581,7 +633,8 @@
var failureMechanism = new PipingFailureMechanism();
int progressCallCount = 0;
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, corruptPath);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, corruptPath);
importer.SetProgressChanged((name, step, steps) => progressCallCount++);
var importResult = false;
@@ -608,9 +661,9 @@
};
TestHelper.AssertLogMessagesAreGenerated(call, expectedLogMessages, 4);
- AssertSuccesfulImport(importResult, 2, corruptPath, failureMechanism.SurfaceLines);
- Assert.AreEqual(1, failureMechanism.SurfaceLines.Count(sl => sl.Name == "Rotterdam1"));
- Assert.AreEqual(1, failureMechanism.SurfaceLines.Count(sl => sl.Name == "ArtifcialLocal"));
+ RingtoetsPipingSurfaceLine[] importedSurfaceLines = AssertSuccesfulImport(importResult, 2, corruptPath, surfaceLineUpdateStrategy);
+ Assert.AreEqual(1, importedSurfaceLines.Count(sl => sl.Name == "Rotterdam1"));
+ Assert.AreEqual(1, importedSurfaceLines.Count(sl => sl.Name == "ArtifcialLocal"));
Assert.AreEqual(9, progressCallCount,
new StringBuilder()
@@ -634,7 +687,8 @@
var failureMechanism = new PipingFailureMechanism();
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), path);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), surfaceLineUpdateStrategy, path);
// Precondition
CollectionAssert.IsEmpty(failureMechanism.SurfaceLines);
@@ -661,7 +715,7 @@
Path.Combine(ioTestDataPath, "InvalidRow_DuplicatePointsCausingRecline.krp.csv"))
};
TestHelper.AssertLogMessagesAreGenerated(call, expectedLogMessages, 4);
- AssertSuccesfulImport(importResult, 0, path, failureMechanism.SurfaceLines);
+ AssertSuccesfulImport(importResult, 0, path, surfaceLineUpdateStrategy);
Assert.IsTrue(TestHelper.CanOpenFileForWrite(path));
}
@@ -675,7 +729,8 @@
var failureMechanism = new PipingFailureMechanism();
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), path);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), surfaceLineUpdateStrategy, path);
// Precondition
CollectionAssert.IsEmpty(failureMechanism.SurfaceLines);
@@ -702,7 +757,7 @@
Path.Combine(ioTestDataPath, "InvalidRow_DuplicatePointsCausingZeroLength.krp.csv"))
};
TestHelper.AssertLogMessagesAreGenerated(call, expectedLogMessages, 4);
- AssertSuccesfulImport(importResult, 0, path, failureMechanism.SurfaceLines);
+ AssertSuccesfulImport(importResult, 0, path, surfaceLineUpdateStrategy);
Assert.IsTrue(TestHelper.CanOpenFileForWrite(path));
}
@@ -726,7 +781,8 @@
var failureMechanism = new PipingFailureMechanism();
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLinesFile);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, surfaceLinesFile);
var importResult = true;
@@ -742,7 +798,7 @@
nonExistingCharacteristicFile);
TestHelper.AssertLogMessageIsGenerated(call, expectedLogMessage, 3);
- AssertSuccesfulImport(importResult, 2, surfaceLinesFile, failureMechanism.SurfaceLines);
+ AssertSuccesfulImport(importResult, 2, surfaceLinesFile, surfaceLineUpdateStrategy);
}
[Test]
@@ -755,7 +811,8 @@
var failureMechanism = new PipingFailureMechanism();
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), surfaceLinesFile);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), surfaceLineUpdateStrategy, surfaceLinesFile);
var importResult = true;
@@ -781,7 +838,7 @@
internalErrorMessage)
};
TestHelper.AssertLogMessagesAreGenerated(call, expectedLogMessages, 5);
- AssertUnsuccessfulImport(importResult, failureMechanism.SurfaceLines);
+ AssertUnsuccessfulImport(importResult, surfaceLineUpdateStrategy);
}
[Test]
@@ -794,7 +851,8 @@
var failureMechanism = new PipingFailureMechanism();
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), surfaceLinesFile);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), surfaceLineUpdateStrategy, surfaceLinesFile);
var importResult = true;
@@ -821,7 +879,7 @@
};
TestHelper.AssertLogMessagesAreGenerated(call, expectedLogMessages, 5);
- AssertUnsuccessfulImport(importResult, failureMechanism.SurfaceLines);
+ AssertUnsuccessfulImport(importResult, surfaceLineUpdateStrategy);
}
[Test]
@@ -841,8 +899,8 @@
try
{
var failureMechanism = new PipingFailureMechanism();
-
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), copyTargetPath);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, new ReferenceLine(), surfaceLineUpdateStrategy, copyTargetPath);
importer.SetProgressChanged((name, step, steps) =>
{
// Delete the file being read by the import during the import itself:
@@ -874,7 +932,7 @@
internalErrorMessage)
};
TestHelper.AssertLogMessagesAreGenerated(call, expectedLogMessages, 5);
- AssertUnsuccessfulImport(importResult, failureMechanism.SurfaceLines);
+ AssertUnsuccessfulImport(importResult, surfaceLineUpdateStrategy);
}
finally
{
@@ -909,9 +967,9 @@
});
var failureMechanism = new PipingFailureMechanism();
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, surfaceLinesFile);
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLinesFile);
-
var importResult = true;
// Call
@@ -934,10 +992,10 @@
};
TestHelper.AssertLogMessagesAreGenerated(call, expectedLogMessages, 5);
- AssertSuccesfulImport(importResult, 2, surfaceLinesFile, failureMechanism.SurfaceLines);
- Assert.AreEqual(1, failureMechanism.SurfaceLines.Count(sl => sl.Name == "Rotterdam1"));
- Assert.AreEqual(-1.02, failureMechanism.SurfaceLines.First(sl => sl.Name == "Rotterdam1").DitchPolderSide.Z, "First characteristic points definition should be added to data model.");
- Assert.AreEqual(1, failureMechanism.SurfaceLines.Count(sl => sl.Name == "ArtifcialLocal"));
+ RingtoetsPipingSurfaceLine[] importedSurfaceLines = AssertSuccesfulImport(importResult, 2, surfaceLinesFile, surfaceLineUpdateStrategy);
+ Assert.AreEqual(1, importedSurfaceLines.Count(sl => sl.Name == "Rotterdam1"));
+ Assert.AreEqual(-1.02, importedSurfaceLines.First(sl => sl.Name == "Rotterdam1").DitchPolderSide.Z, "First characteristic points definition should be added to data model.");
+ Assert.AreEqual(1, importedSurfaceLines.Count(sl => sl.Name == "ArtifcialLocal"));
}
[Test]
@@ -960,7 +1018,8 @@
var failureMechanism = new PipingFailureMechanism();
int progressCallCount = 0;
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLinesFile);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, surfaceLinesFile);
importer.SetProgressChanged((name, step, steps) => progressCallCount++);
var importResult = false;
@@ -990,9 +1049,9 @@
};
TestHelper.AssertLogMessagesAreGenerated(call, expectedLogMessages, 6);
- AssertSuccesfulImport(importResult, 2, surfaceLinesFile, failureMechanism.SurfaceLines);
- Assert.AreEqual(1, failureMechanism.SurfaceLines.Count(sl => sl.Name == "Rotterdam1Invalid"));
- Assert.AreEqual(1, failureMechanism.SurfaceLines.Count(sl => sl.Name == "ArtifcialLocal"));
+ RingtoetsPipingSurfaceLine[] importedSurfaceLines = AssertSuccesfulImport(importResult, 2, surfaceLinesFile, surfaceLineUpdateStrategy);
+ Assert.AreEqual(1, importedSurfaceLines.Count(sl => sl.Name == "Rotterdam1Invalid"));
+ Assert.AreEqual(1, importedSurfaceLines.Count(sl => sl.Name == "ArtifcialLocal"));
Assert.AreEqual(11, progressCallCount,
new StringBuilder()
@@ -1028,7 +1087,8 @@
var failureMechanism = new PipingFailureMechanism();
int progressCallCount = 0;
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLinesPath);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, surfaceLinesPath);
importer.SetProgressChanged((name, step, steps) => progressCallCount++);
var importResult = false;
@@ -1052,9 +1112,9 @@
};
TestHelper.AssertLogMessagesAreGenerated(call, expectedLogMessages, 5);
- AssertSuccesfulImport(importResult, 2, surfaceLinesPath, failureMechanism.SurfaceLines);
- Assert.AreEqual(1, failureMechanism.SurfaceLines.Count(sl => sl.Name == "Rotterdam1"));
- Assert.AreEqual(1, failureMechanism.SurfaceLines.Count(sl => sl.Name == "ArtifcialLocal"));
+ RingtoetsPipingSurfaceLine[] importedSurfaceLines = AssertSuccesfulImport(importResult, 2, surfaceLinesPath, surfaceLineUpdateStrategy);
+ Assert.AreEqual(1, importedSurfaceLines.Count(sl => sl.Name == "Rotterdam1"));
+ Assert.AreEqual(1, importedSurfaceLines.Count(sl => sl.Name == "ArtifcialLocal"));
Assert.AreEqual(10, progressCallCount,
new StringBuilder()
@@ -1090,7 +1150,8 @@
var failureMechanism = new PipingFailureMechanism();
int progressCallCount = 0;
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLinesPath);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, surfaceLinesPath);
importer.SetProgressChanged((name, step, steps) => progressCallCount++);
var importResult = false;
@@ -1113,12 +1174,10 @@
"Extra")
};
TestHelper.AssertLogMessagesAreGenerated(call, expectedLogMessages, 5);
- Assert.IsTrue(importResult);
- Assert.AreEqual(2, failureMechanism.SurfaceLines.Count,
- "Ensure only the two valid surfacelines have been imported.");
- Assert.AreEqual(1, failureMechanism.SurfaceLines.Count(sl => sl.Name == "Rotterdam1"));
- Assert.AreEqual(1, failureMechanism.SurfaceLines.Count(sl => sl.Name == "ArtifcialLocal"));
+ RingtoetsPipingSurfaceLine[] importedSurfaceLines = AssertSuccesfulImport(importResult, 2, surfaceLinesPath, surfaceLineUpdateStrategy);
+ Assert.AreEqual(1, importedSurfaceLines.Count(sl => sl.Name == "Rotterdam1"));
+ Assert.AreEqual(1, importedSurfaceLines.Count(sl => sl.Name == "ArtifcialLocal"));
Assert.AreEqual(12, progressCallCount,
new StringBuilder()
@@ -1159,7 +1218,8 @@
var failureMechanism = new PipingFailureMechanism();
int progressCallCount = 0;
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLinesPath);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, surfaceLinesPath);
importer.SetProgressChanged((name, step, steps) => progressCallCount++);
var importResult = false;
@@ -1187,9 +1247,9 @@
};
TestHelper.AssertLogMessagesAreGenerated(call, expectedLogMessages);
- AssertSuccesfulImport(importResult, 2, surfaceLinesPath, failureMechanism.SurfaceLines);
- Assert.AreEqual(1, failureMechanism.SurfaceLines.Count(sl => sl.Name == "Rotterdam1Invalid"));
- Assert.AreEqual(1, failureMechanism.SurfaceLines.Count(sl => sl.Name == "ArtifcialLocal"));
+ RingtoetsPipingSurfaceLine[] importedSurfaceLines = AssertSuccesfulImport(importResult, 2, surfaceLinesPath, surfaceLineUpdateStrategy);
+ Assert.AreEqual(1, importedSurfaceLines.Count(sl => sl.Name == "Rotterdam1Invalid"));
+ Assert.AreEqual(1, importedSurfaceLines.Count(sl => sl.Name == "ArtifcialLocal"));
Assert.AreEqual(11, progressCallCount,
new StringBuilder()
@@ -1234,7 +1294,8 @@
bool progressStarted = false;
bool progressCharacteristicPointsStarted = false;
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, validSurfaceLinesFilePath);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, validSurfaceLinesFilePath);
importer.SetProgressChanged(delegate(string currentStepName, int currentStep, int totalNumberOfSteps)
{
if (!progressStarted && callCount == 0)
@@ -1280,11 +1341,9 @@
bool importResult = importer.Import();
// Assert
- ObservableCollectionWithSourcePath importedSurfaceLines = failureMechanism.SurfaceLines;
- AssertSuccesfulImport(importResult, expectedNumberOfSurfaceLines, validSurfaceLinesFilePath, importedSurfaceLines);
+ RingtoetsPipingSurfaceLine[] importTargetArray = AssertSuccesfulImport(importResult, expectedNumberOfSurfaceLines, validSurfaceLinesFilePath, surfaceLineUpdateStrategy);
// Sample some of the imported data:
- RingtoetsPipingSurfaceLine[] importTargetArray = importedSurfaceLines.ToArray();
RingtoetsPipingSurfaceLine firstSurfaceLine = importTargetArray[0];
Assert.AreEqual("Rotterdam1", firstSurfaceLine.Name);
Assert.AreEqual(8, firstSurfaceLine.Points.Length);
@@ -1330,7 +1389,8 @@
var failureMechanism = new PipingFailureMechanism();
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, validFilePath);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, validFilePath);
// Precondition
CollectionAssert.IsEmpty(failureMechanism.SurfaceLines);
@@ -1344,11 +1404,9 @@
var message = "Profielschematisatie ArtifcialLocal doorkruist de huidige referentielijn niet of op meer dan één punt en kan niet worden geïmporteerd. Dit kan komen doordat de profielschematisatie een lokaal coördinaatsysteem heeft.";
TestHelper.AssertLogMessageIsGenerated(call, message);
- ObservableCollectionWithSourcePath importedSurfaceLines = failureMechanism.SurfaceLines;
- AssertSuccesfulImport(importResult, expectedNumberOfSurfaceLines, validFilePath, importedSurfaceLines);
+ RingtoetsPipingSurfaceLine[] importTargetArray = AssertSuccesfulImport(importResult, expectedNumberOfSurfaceLines, validFilePath, surfaceLineUpdateStrategy);
// Sample some of the imported data:
- RingtoetsPipingSurfaceLine[] importTargetArray = importedSurfaceLines.ToArray();
RingtoetsPipingSurfaceLine firstSurfaceLine = importTargetArray[0];
Assert.AreEqual("Rotterdam1", firstSurfaceLine.Name);
Assert.AreEqual(8, firstSurfaceLine.Points.Length);
@@ -1378,7 +1436,8 @@
var failureMechanism = new PipingFailureMechanism();
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, validFilePath);
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, validFilePath);
// Precondition
CollectionAssert.IsEmpty(failureMechanism.SurfaceLines);
@@ -1392,11 +1451,9 @@
var mesagge = "Profielschematisatie Rotterdam1 doorkruist de huidige referentielijn niet of op meer dan één punt en kan niet worden geïmporteerd.";
TestHelper.AssertLogMessageIsGenerated(call, mesagge);
- ObservableCollectionWithSourcePath importedSurfaceLines = failureMechanism.SurfaceLines;
- AssertSuccesfulImport(importResult, expectedNumberOfSurfaceLines, validFilePath, importedSurfaceLines);
+ RingtoetsPipingSurfaceLine[] importTargetArray = AssertSuccesfulImport(importResult, expectedNumberOfSurfaceLines, validFilePath, surfaceLineUpdateStrategy);
// Sample some of the imported data:
- RingtoetsPipingSurfaceLine[] importTargetArray = importedSurfaceLines.ToArray();
RingtoetsPipingSurfaceLine firstSurfaceLine = importTargetArray[0];
Assert.AreEqual("ArtifcialLocal", firstSurfaceLine.Name);
Assert.AreEqual(3, firstSurfaceLine.Points.Length);
@@ -1423,9 +1480,9 @@
});
var failureMechanism = new PipingFailureMechanism();
+ var surfaceLineUpdateStrategy = new TestSurfaceLineUpdateStrategy();
+ var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, surfaceLineUpdateStrategy, validFilePath);
- var importer = new PipingSurfaceLinesCsvImporter(failureMechanism.SurfaceLines, referenceLine, validFilePath);
-
// Precondition
CollectionAssert.IsEmpty(failureMechanism.SurfaceLines);
Assert.IsTrue(File.Exists(validFilePath));
@@ -1439,33 +1496,35 @@
"ArtifcialLocal");
TestHelper.AssertLogMessageIsGenerated(call, message);
- ObservableCollectionWithSourcePath importedSurfaceLines = failureMechanism.SurfaceLines;
- AssertSuccesfulImport(importResult, 1, validFilePath, importedSurfaceLines);
+ RingtoetsPipingSurfaceLine[] importTargetArray = AssertSuccesfulImport(importResult, 1, validFilePath, surfaceLineUpdateStrategy);
// Sample some of the imported data:
- RingtoetsPipingSurfaceLine[] importTargetArray = importedSurfaceLines.ToArray();
RingtoetsPipingSurfaceLine firstSurfaceLine = importTargetArray[0];
Assert.AreEqual("Rotterdam1", firstSurfaceLine.Name);
Assert.AreEqual(8, firstSurfaceLine.Points.Length);
Assert.AreEqual(427776.654093, firstSurfaceLine.StartingWorldPoint.Y);
}
- private static void AssertSuccesfulImport(bool importResult, int expectedSurfaceLineCount, string expectedFilePath,
- ObservableCollectionWithSourcePath surfaceLines)
+ private static RingtoetsPipingSurfaceLine[] AssertSuccesfulImport(bool importResult,
+ int expectedSurfaceLineCount,
+ string expectedFilePath,
+ TestSurfaceLineUpdateStrategy updateStrategy)
{
Assert.IsTrue(importResult);
- Assert.AreEqual(expectedFilePath, surfaceLines.SourcePath);
+ Assert.IsTrue(updateStrategy.Updated);
+ Assert.AreEqual(expectedFilePath, updateStrategy.FilePath);
string message = $"Ensure only {expectedSurfaceLineCount} valid surfacelines are imported.";
- Assert.AreEqual(expectedSurfaceLineCount, surfaceLines.Count);
+ Assert.AreEqual(expectedSurfaceLineCount, updateStrategy.ReadSurfaceLines.Length, message);
+
+ return updateStrategy.ReadSurfaceLines;
}
- private static void AssertUnsuccessfulImport(bool importResult, ObservableCollectionWithSourcePath surfaceLines)
+ private static void AssertUnsuccessfulImport(bool importResult,
+ TestSurfaceLineUpdateStrategy updateStrategy)
{
Assert.IsFalse(importResult);
- CollectionAssert.IsEmpty(surfaceLines,
- "No items should be added to collection when import is aborted or cancelled.");
- Assert.IsNull(surfaceLines.SourcePath);
+ Assert.IsFalse(updateStrategy.Updated);
}
private static void AssertAreEqualPoint2D(Point2D expectedPoint, Point2D actualPoint)
@@ -1474,5 +1533,22 @@
string.Format("Expected point: {0}" + Environment.NewLine + "Actual point: {1}",
expectedPoint, actualPoint));
}
+
+ private class TestSurfaceLineUpdateStrategy : ISurfaceLineUpdateSurfaceLineStrategy
+ {
+ public bool Updated { get; private set; }
+ public string FilePath { get; private set; }
+ public RingtoetsPipingSurfaceLine[] ReadSurfaceLines { get; private set; }
+
+ public IEnumerable UpdateSurfaceLinesWithImportedData(ObservableCollectionWithSourcePath targetCollection,
+ IEnumerable readRingtoetsPipingSurfaceLines,
+ string sourceFilePath)
+ {
+ Updated = true;
+ FilePath = sourceFilePath;
+ ReadSurfaceLines = readRingtoetsPipingSurfaceLines.ToArray();
+ return Enumerable.Empty();
+ }
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/RingtoetsPipingSurfaceLineReplaceDataStrategyTest.cs
===================================================================
diff -u -ree74bbc714b9c3d6b46e7c7734640366ef197ef6 -r316e741c3eefe3aab13dd070b56654a6bc4c24f1
--- Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/RingtoetsPipingSurfaceLineReplaceDataStrategyTest.cs (.../RingtoetsPipingSurfaceLineReplaceDataStrategyTest.cs) (revision ee74bbc714b9c3d6b46e7c7734640366ef197ef6)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/RingtoetsPipingSurfaceLineReplaceDataStrategyTest.cs (.../RingtoetsPipingSurfaceLineReplaceDataStrategyTest.cs) (revision 316e741c3eefe3aab13dd070b56654a6bc4c24f1)
@@ -40,7 +40,7 @@
var strategy = new RingtoetsPipingSurfaceLineReplaceDataStrategy();
// Assert
- Assert.IsInstanceOf(strategy);
+ Assert.IsInstanceOf(strategy);
}
[Test]