Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/DikeProfiles/DikeProfileDataReader.cs =================================================================== diff -u -rf17b6b3fc9a23b521185b7a3ee5398571a4f1fa7 -rad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/DikeProfiles/DikeProfileDataReader.cs (.../DikeProfileDataReader.cs) (revision f17b6b3fc9a23b521185b7a3ee5398571a4f1fa7) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/DikeProfiles/DikeProfileDataReader.cs (.../DikeProfileDataReader.cs) (revision ad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68) @@ -78,6 +78,7 @@ /// A keyword is defined more then once. /// The geometry points for either the dike or foreshore do not have monotonically /// increasing X-coordinates. + /// An unexpected piece of text has been encountered in the file. /// public DikeProfileData ReadDikeProfileData(string filePath) { @@ -152,6 +153,8 @@ { continue; } + + HandleUnexpectedText(text, lineNumber); } } @@ -1017,6 +1020,20 @@ return new CriticalFileReadException(message, innerException); } + /// + /// Handles the error-case that the file has unexpected text. + /// + /// The unexpected text. + /// The line number. + /// When calling this method, due to + /// having read an unexpected piece of text from the file. + private void HandleUnexpectedText(string text, int lineNumber) + { + string message = string.Format(Resources.DikeProfileDataReader_HandleUnexpectedText_Line_0_is_invalid, + text); + throw CreateCriticalFileReadException(lineNumber, message); + } + private void ValidateNoMissingKeywords() { string[] missingKeywords = GetMissingKeywords(); Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Properties/Resources.Designer.cs =================================================================== diff -u -r17a204aa1ee56ab87e83ed1fc370c91f49fa0621 -rad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 17a204aa1ee56ab87e83ed1fc370c91f49fa0621) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision ad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68) @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.42000 +// Runtime Version:4.0.30319.18444 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -61,6 +61,15 @@ } /// + /// Looks up a localized string similar to De regel ('{0}') bevat ongeldige tekst.. + /// + internal static string DikeProfileDataReader_HandleUnexpectedText_Line_0_is_invalid { + get { + return ResourceManager.GetString("DikeProfileDataReader_HandleUnexpectedText_Line_0_is_invalid", resourceCulture); + } + } + + /// /// Looks up a localized string similar to De ingelezen damhoogte ('{0}') is geen getal.. /// internal static string DikeProfileDataReader_ParseDamHeight_DamHeight_0_not_number { Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Properties/Resources.resx =================================================================== diff -u -r17a204aa1ee56ab87e83ed1fc370c91f49fa0621 -rad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Properties/Resources.resx (.../Resources.resx) (revision 17a204aa1ee56ab87e83ed1fc370c91f49fa0621) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Properties/Resources.resx (.../Resources.resx) (revision ad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68) @@ -243,4 +243,7 @@ De ingelezen regel ('{0}') is geen 'X Y ruwheid' definitie. + + De regel ('{0}') bevat ongeldige tekst. + \ No newline at end of file Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/DikeProfiles/DikeProfileDataReaderTest.cs =================================================================== diff -u -r717070383f9f969f9d3b33aac4b195a0d4ded588 -rad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/DikeProfiles/DikeProfileDataReaderTest.cs (.../DikeProfileDataReaderTest.cs) (revision 717070383f9f969f9d3b33aac4b195a0d4ded588) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/DikeProfiles/DikeProfileDataReaderTest.cs (.../DikeProfileDataReaderTest.cs) (revision ad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68) @@ -661,6 +661,22 @@ ReadFileAndExpectCriticalFileReadException(faultyFileName, expectedLineNumber, expectedMessage); } + [Test] + [TestCase("faulty_unexpectedText1.prfl", 5, "Nobody expects the Spanish inquisition!")] + [TestCase("faulty_unexpectedText2.prfl", 10, "0.000\t0.000\t1.000")] + [TestCase("faulty_unexpectedText3.prfl", 11, "18.000\t6.000\t1.000")] + [TestCase("faulty_unexpectedText4.prfl", 17, "-18.000\t-6.000\t1.000")] + [TestCase("faulty_unexpectedText5.prfl", 20, "18.000\t6.000\t1.000")] + [TestCase("faulty_unexpectedText6.prfl", 16, "haha hihi hoho hehe")] + [TestCase("faulty_unexpectedText7.prfl", 13, "Niemand weet, wat repelsteeltje eet!")] + public void ReadDikeProfileData_FileWithUnexpectedText_ThrowsCriticalFileReadException( + string faultyFileName, int expectedLineNumber, string expectedText) + { + string expectedMessage = string.Format("De regel ('{0}') bevat ongeldige tekst.", + expectedText); + ReadFileAndExpectCriticalFileReadException(faultyFileName, expectedLineNumber, expectedMessage); + } + private void ReadFileAndExpectCriticalFileReadException(string fileName, int lineNumber, string errorMessage) { // Setup Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_NoMemo.prfl =================================================================== diff -u -rbbf8e2a3fb6e709c7d7a5ddbd955575f83720cc0 -rad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_NoMemo.prfl (.../faulty_NoMemo.prfl) (revision bbf8e2a3fb6e709c7d7a5ddbd955575f83720cc0) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_NoMemo.prfl (.../faulty_NoMemo.prfl) (revision ad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68) @@ -15,8 +15,4 @@ 18.000 6.000 1.000 -Verkenning prfl format: -Basis: -geen dam -geen voorland -recht talud + Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_noDijk.prfl =================================================================== diff -u -rbbf8e2a3fb6e709c7d7a5ddbd955575f83720cc0 -rad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_noDijk.prfl (.../faulty_noDijk.prfl) (revision bbf8e2a3fb6e709c7d7a5ddbd955575f83720cc0) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_noDijk.prfl (.../faulty_noDijk.prfl) (revision ad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68) @@ -11,9 +11,8 @@ DAMWAND 0 KRUINHOOGTE 6 -0.000 0.000 1.000 -18.000 6.000 1.000 + MEMO Verkenning prfl format: Basis: Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText1.prfl =================================================================== diff -u --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText1.prfl (revision 0) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText1.prfl (revision ad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68) @@ -0,0 +1,22 @@ +VERSIE 4.0 +ID profiel001 + +RICHTING 330 +Nobody expects the Spanish inquisition! +DAM 0 +DAMHOOGTE 0 + +VOORLAND 0 + +DAMWAND 0 +KRUINHOOGTE 6 +DIJK 2 +0.000 0.000 1.000 +18.000 6.000 1.000 + +MEMO +Verkenning prfl format: +Basis: +geen dam +geen voorland +recht talud Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText2.prfl =================================================================== diff -u --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText2.prfl (revision 0) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText2.prfl (revision ad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68) @@ -0,0 +1,22 @@ +VERSIE 4.0 +ID profiel001 + +RICHTING 330 + +DAM 0 +DAMHOOGTE 0 + +VOORLAND 0 +0.000 0.000 1.000 +18.000 6.000 1.000 + +DAMWAND 0 +KRUINHOOGTE 6 +DIJK 0 + +MEMO +Verkenning prfl format: +Basis: +geen dam +geen voorland +recht talud Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText3.prfl =================================================================== diff -u --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText3.prfl (revision 0) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText3.prfl (revision ad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68) @@ -0,0 +1,22 @@ +VERSIE 4.0 +ID profiel001 + +RICHTING 330 + +DAM 0 +DAMHOOGTE 0 + +VOORLAND 1 +0.000 0.000 1.000 +18.000 6.000 1.000 + +DAMWAND 0 +KRUINHOOGTE 6 +DIJK 0 + +MEMO +Verkenning prfl format: +Basis: +geen dam +geen voorland +recht talud Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText4.prfl =================================================================== diff -u --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText4.prfl (revision 0) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText4.prfl (revision ad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68) @@ -0,0 +1,26 @@ +VERSIE 4.0 +ID profiel004 + +RICHTING 330 + +DAM 0 +DAMHOOGTE 0.5 + +VOORLAND 3 +-150.000 -9.000 1.000 +-100.000 -6.000 1.000 +-18.000 -6.000 1.000 + +DAMWAND 0 +KRUINHOOGTE 6 +DIJK 0 +-18.000 -6.000 1.000 +-2.000 -0.100 0.500 +2.000 0.100 1.000 +18.000 6.000 1.000 + +MEMO +Verkenning prfl format: +geen dam +voorland +talud met (ruwe) berm Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText5.prfl =================================================================== diff -u --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText5.prfl (revision 0) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText5.prfl (revision ad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68) @@ -0,0 +1,26 @@ +VERSIE 4.0 +ID profiel004 + +RICHTING 330 + +DAM 0 +DAMHOOGTE 0.5 + +VOORLAND 3 +-150.000 -9.000 1.000 +-100.000 -6.000 1.000 +-18.000 -6.000 1.000 + +DAMWAND 0 +KRUINHOOGTE 6 +DIJK 3 +-18.000 -6.000 1.000 +-2.000 -0.100 0.500 +2.000 0.100 1.000 +18.000 6.000 1.000 + +MEMO +Verkenning prfl format: +geen dam +voorland +talud met (ruwe) berm Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText6.prfl =================================================================== diff -u --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText6.prfl (revision 0) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText6.prfl (revision ad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68) @@ -0,0 +1,23 @@ +VERSIE 4.0 +ID profiel001 + +RICHTING 330 + +DAM 0 +DAMHOOGTE 0 + +VOORLAND 0 + +DAMWAND 0 +KRUINHOOGTE 6 +DIJK 2 +0.000 0.000 1.000 +18.000 6.000 1.000 +haha hihi hoho hehe + +MEMO +Verkenning prfl format: +Basis: +geen dam +geen voorland +recht talud Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText7.prfl =================================================================== diff -u --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText7.prfl (revision 0) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/DikeProfiles/faulty_unexpectedText7.prfl (revision ad5d4e3ca4cceff8e326fe0bd77ec7a1c3d57f68) @@ -0,0 +1,27 @@ +VERSIE 4.0 +ID profiel004 + +RICHTING 330 + +DAM 0 +DAMHOOGTE 0.5 + +VOORLAND 3 +-150.000 -9.000 1.000 +-100.000 -6.000 1.000 +-18.000 -6.000 1.000 +Niemand weet, wat repelsteeltje eet! + +DAMWAND 0 +KRUINHOOGTE 6 +DIJK 4 +-18.000 -6.000 1.000 +-2.000 -0.100 0.500 +2.000 0.100 1.000 +18.000 6.000 1.000 + +MEMO +Verkenning prfl format: +geen dam +voorland +talud met (ruwe) berm