Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs =================================================================== diff -u -r2092 -r2094 --- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 2092) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 2094) @@ -81,6 +81,27 @@ Assert.AreEqual(7, actualDamProjectData.CalculationMessages.Count); } + [Test] + // This should be a better exception type and exception message + [ExpectedException(typeof(System.InvalidOperationException))] + public void GivenDataSetContainingIllegalCharactersWhenWritingXmlThenRaiseExceptionWithClearMessage() + { + // Given DataSet Containing Illegal Characters + DamProjectData expectedDamProjectData = FactoryForDamProjectData.CreateExampleDamProjectData(); + var location = expectedDamProjectData.Dike.Locations[0]; + location.Name = "segment_12_2_1D1"; // Between "segment_12" and "_2_1D1" there are 2 illegal characters (1F hex) + + // When Writing Xml + string xmlString; + Input input = FillXmlInputFromDam.CreateInput(expectedDamProjectData); + xmlString = DamXmlSerialization.SaveInputAsXmlString(input); + + // Then Raise Exception With Clear Message() + input = DamXmlSerialization.LoadInputFromXmlString(xmlString); + DamProjectData actualDamProjectData = FillDamFromXmlInput.CreateDamProjectData(input); + CompareDamProjectData(actualDamProjectData, expectedDamProjectData); + + } private void CompareDamProjectData(DamProjectData actual, DamProjectData expected) { Assert.AreEqual(FactoryForDamProjectData.ExpectedAnalysisType, DamProjectCalculationSpecification.SelectedAnalysisType);