Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/StabilityPointStructuresImporterTest.cs =================================================================== diff -u -rb70abd70f1cd326d1a753c5879a065149ac2ae84 -r3691ac3728727f60bd1ec856b62d92db52a44c6c --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/StabilityPointStructuresImporterTest.cs (.../StabilityPointStructuresImporterTest.cs) (revision b70abd70f1cd326d1a753c5879a065149ac2ae84) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/StabilityPointStructuresImporterTest.cs (.../StabilityPointStructuresImporterTest.cs) (revision 3691ac3728727f60bd1ec856b62d92db52a44c6c) @@ -19,7 +19,12 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; +using System.Collections.Generic; +using System.IO; using Core.Common.Base; +using Core.Common.Base.Geometry; +using Core.Common.TestUtil; using NUnit.Framework; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.IO.FileImporters; @@ -43,5 +48,96 @@ // Assert Assert.IsInstanceOf>>(importer); } + + [Test] + public void Import_ValidIncompleteFile_LogAndTrue() + { + // Setup + string filePath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Common.IO, + Path.Combine("Structures", "CorrectFiles", "Kunstwerken.shp")); + + var referencePoints = new List + { + new Point2D(131144.094, 549979.893), + new Point2D(131538.705, 548316.752), + new Point2D(135878.442, 532149.859), + new Point2D(131225.017, 548395.948), + new Point2D(131270.38, 548367.462), + new Point2D(131507.119, 548322.951) + }; + ReferenceLine referenceLine = new ReferenceLine(); + referenceLine.SetGeometry(referencePoints); + var importTarget = new ObservableList(); + var structuresImporter = new StabilityPointStructuresImporter(importTarget, referenceLine, filePath); + + // Call + bool importResult = false; + Action call = () => importResult = structuresImporter.Import(); + + // Assert + string[] expectedMessages = + { + "Kan geen geldige gegevens vinden voor kunstwerklocatie met KWKIDENT 'KUNST2'.", + "Kunstwerk nummer 2 wordt overgeslagen.", + "Kan geen geldige gegevens vinden voor kunstwerklocatie met KWKIDENT 'KUNST3'.", + "Kunstwerk nummer 3 wordt overgeslagen.", + "Kan geen geldige gegevens vinden voor kunstwerklocatie met KWKIDENT 'KUNST4'.", + "Kunstwerk nummer 4 wordt overgeslagen.", + "Kan geen geldige gegevens vinden voor kunstwerklocatie met KWKIDENT 'KUNST5'.", + "Kunstwerk nummer 5 wordt overgeslagen.", + "Kan geen geldige gegevens vinden voor kunstwerklocatie met KWKIDENT 'KUNST6'.", + "Kunstwerk nummer 6 wordt overgeslagen." + }; + TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages); + Assert.IsTrue(importResult); + Assert.AreEqual(1, importTarget.Count); + } + + [Test] + public void Import_InvalidCsvFile_LogAndTrue() + { + // Setup + string filePath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Common.IO, + Path.Combine("Structures", "CorrectShpIncompleteCsv", "Kunstwerken.shp")); + + var referencePoints = new List + { + new Point2D(131144.094, 549979.893), + new Point2D(131538.705, 548316.752), + new Point2D(135878.442, 532149.859), + new Point2D(131225.017, 548395.948), + new Point2D(131270.38, 548367.462), + new Point2D(131507.119, 548322.951) + }; + ReferenceLine referenceLine = new ReferenceLine(); + referenceLine.SetGeometry(referencePoints); + var importTarget = new ObservableList(); + var structuresImporter = new StabilityPointStructuresImporter(importTarget, referenceLine, filePath); + + // Call + bool importResult = false; + Action call = () => importResult = structuresImporter.Import(); + + // Assert + string[] expectedMessages = + { + "Parameter 'KW_STERSTAB9' komt meermaals voor.", + "De waarde op regel 37, kolom 18 is ongeldig.", + "Kunstwerk nummer 1 wordt overgeslagen.", + "Kan geen geldige gegevens vinden voor kunstwerklocatie met KWKIDENT 'KUNST2'.", + "Kunstwerk nummer 2 wordt overgeslagen.", + "Kan geen geldige gegevens vinden voor kunstwerklocatie met KWKIDENT 'KUNST3'.", + "Kunstwerk nummer 3 wordt overgeslagen.", + "Kan geen geldige gegevens vinden voor kunstwerklocatie met KWKIDENT 'KUNST4'.", + "Kunstwerk nummer 4 wordt overgeslagen.", + "Kan geen geldige gegevens vinden voor kunstwerklocatie met KWKIDENT 'KUNST5'.", + "Kunstwerk nummer 5 wordt overgeslagen.", + "Kan geen geldige gegevens vinden voor kunstwerklocatie met KWKIDENT 'KUNST6'.", + "Kunstwerk nummer 6 wordt overgeslagen." + }; + TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages); + Assert.IsTrue(importResult); + Assert.AreEqual(0, importTarget.Count); + } } } \ No newline at end of file