Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SurfaceLines/PipingSurfaceLinesCsvReaderTest.cs =================================================================== diff -u -r59ea94f47cbf3b4830b14bf87e3609341785a1df -re315307a730a87022136e7fa7b97a570d37399dc --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SurfaceLines/PipingSurfaceLinesCsvReaderTest.cs (.../PipingSurfaceLinesCsvReaderTest.cs) (revision 59ea94f47cbf3b4830b14bf87e3609341785a1df) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SurfaceLines/PipingSurfaceLinesCsvReaderTest.cs (.../PipingSurfaceLinesCsvReaderTest.cs) (revision e315307a730a87022136e7fa7b97a570d37399dc) @@ -114,7 +114,7 @@ // Setup string path = Path.Combine(testDataPath, "ValidFileWithoutSurfaceLines.csv"); - using (var reader = new PipingSurfaceLinesCsvReader(path)) + using (var reader = new PipingSurfaceLinesCsvReader(path)) { // Call int linesCount = reader.GetSurfaceLinesCount(); @@ -728,6 +728,32 @@ } [Test] + [TestCase("InvalidRow_DuplicatePointsCausingZeroLength.csv")] + [TestCase("InvalidRow_SinglePoint.csv")] + public void ReadLine_LineWithZeroLength_ThrowLineParseException(string file) + { + // Setup + string path = Path.Combine(testDataPath, file); + + // Precondition + Assert.IsTrue(File.Exists(path)); + + using (var reader = new PipingSurfaceLinesCsvReader(path)) + { + // Call + TestDelegate call = () => reader.ReadSurfaceLine(); + + // Assert + var exception = Assert.Throws(call); + var expectedMessage = new FileReaderErrorMessageBuilder(path) + .WithLocation("op regel 2") + .WithSubject("profielmeting 'Rotterdam1'") + .Build(IOResources.PipingSurfaceLinesCsvReader_ReadLine_SurfaceLine_has_zero_length); + Assert.AreEqual(expectedMessage, exception.Message); + } + } + + [Test] public void Dispose_HavingReadFile_CorrectlyReleaseFile() { // Setup