Index: DamClients/DamUI/trunk/src/Dam/Tests/TestData/SampleCalculationParameters.xml =================================================================== diff -u -r2648 -r2655 --- DamClients/DamUI/trunk/src/Dam/Tests/TestData/SampleCalculationParameters.xml (.../SampleCalculationParameters.xml) (revision 2648) +++ DamClients/DamUI/trunk/src/Dam/Tests/TestData/SampleCalculationParameters.xml (.../SampleCalculationParameters.xml) (revision 2655) @@ -3,19 +3,15 @@ 1 + 1 1 1 - 1 1 0 - 1 - 0 - UpliftVan - StressTables - 0 Grid 2 + UpliftVan \ No newline at end of file Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Assemblers/CalculationParametersAssembler.cs =================================================================== diff -u -r2648 -r2655 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Assemblers/CalculationParametersAssembler.cs (.../CalculationParametersAssembler.cs) (revision 2648) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Assemblers/CalculationParametersAssembler.cs (.../CalculationParametersAssembler.cs) (revision 2655) @@ -58,12 +58,13 @@ public const string XmlMStabParametersElementName = "MStabParameters"; public const string XmlMStabIsCalculateAllStabilityProjectsAtOnceElementName = "IsCalculateAllStabilityProjectsAtOnce"; public const string XmlMStabCalculationModelElementName = "CalculationModel"; - public const string XmlMStabShearStrengthElementName = "ShearStrength"; - public const string XmlMStabProbabilisticElementName = "Probabilistic"; public const string XmlMStabSearchMethodElementName = "SearchMethod"; public const string XmlMStabUseZonesElementName = "UseZones"; - public const string XmlMStabIsOverrulePLLineCreationMethodName = "IsOverrulePLLineCreationMethod"; - public const string XmlMStabPLLineCreationMethodname = "PLLineCreationMethod"; + // Obsolete Mstab parameters + public const string XmlObsoleteMStabProbabilisticElementName = "Probabilistic"; + public const string XmlObsoleteMStabIsOverrulePLLineCreationMethodName = "IsOverrulePLLineCreationMethod"; + public const string XmlObsoleteMStabPLLineCreationMethodname = "PLLineCreationMethod"; + public const string XmlObsoleteMStabShearStrengthElementName = "ShearStrength"; /// /// Holds the xml element name @@ -107,8 +108,6 @@ { CalculationModules calculationModules = new CalculationModules(); - // For backward compatibility: - // This line is needed, so old files (with identifier Stability i.s.o. StabilityInside) still can be processed XElement element = calculationModulesElement.Element(CalculationParametersAssembler.XmlStabilityInsideElementName); if (element != null) { @@ -149,7 +148,6 @@ calculationParameters.CalculationModules = calculationModules; } - // MStab parameters XElement mstabParametersElement = dtoObj.Element(XmlMStabParametersElementName); if (mstabParametersElement != null) @@ -170,24 +168,12 @@ mstabParameters.Model = (MStabModelType)Enum.Parse(typeof(MStabModelType), element.Value, true); } - element = mstabParametersElement.Element(CalculationParametersAssembler.XmlMStabShearStrengthElementName); - if (element != null) - { - mstabParameters.ShearStrength = (MStabShearStrength)Enum.Parse(typeof(MStabShearStrength), element.Value, true); - } - element = mstabParametersElement.Element(CalculationParametersAssembler.XmlMStabSearchMethodElementName); if (element != null) { mstabParameters.SearchMethod = (MStabSearchMethod)Enum.Parse(typeof(MStabSearchMethod), element.Value, true); } - element = mstabParametersElement.Element(CalculationParametersAssembler.XmlMStabProbabilisticElementName); - if (element != null) - { - mstabParameters.IsProbabilistic = int.Parse(element.Value) != 0; - } - element = mstabParametersElement.Element(CalculationParametersAssembler.XmlMStabUseZonesElementName); mstabParameters.CalculationOptions = new MStabCalculationOptions(); mstabParameters.CalculationOptions.ZonesType = MStabZonesType.NoZones; @@ -197,22 +183,12 @@ mstabParameters.CalculationOptions.ZonesType = (MStabZonesType)useZones; } - element = mstabParametersElement.Element(CalculationParametersAssembler.XmlMStabIsOverrulePLLineCreationMethodName); - if (element != null) - { - mstabParameters.IsOverrulePLLineCreationMethod = int.Parse(element.Value) != 0; - } + // Check for obsolete keys + ThrowIfObsoleteKeyNameFound(mstabParametersElement, XmlObsoleteMStabProbabilisticElementName); + ThrowIfObsoleteKeyNameFound(mstabParametersElement, XmlObsoleteMStabIsOverrulePLLineCreationMethodName); + ThrowIfObsoleteKeyNameFound(mstabParametersElement, XmlObsoleteMStabPLLineCreationMethodname); + ThrowIfObsoleteKeyNameFound(mstabParametersElement, XmlObsoleteMStabShearStrengthElementName); - element = mstabParametersElement.Element(CalculationParametersAssembler.XmlMStabPLLineCreationMethodname); - if (element != null) - { - mstabParameters.PLLineCreationMethod = (PLLineCreationMethod)Enum.Parse(typeof(PLLineCreationMethod), element.Value, true); - } - else - { - mstabParameters.PLLineCreationMethod = PLLineCreationMethod.None; - } - calculationParameters.MStabParameters = mstabParameters; } @@ -224,7 +200,7 @@ XElement obsoleteElement = calculationModulesElement.Element(obsoleteElementKeyName); if (obsoleteElement != null) { - throw new DtoAssemblerException(String.Format("The specified calculation module '{0}' is obsolete", obsoleteElementKeyName)); + throw new DtoAssemblerException(String.Format("The specified parameter '{0}' is obsolete", obsoleteElementKeyName)); } } Index: DamClients/DamUI/trunk/src/Dam/Tests/CalculationParametersAssemblerTest.cs =================================================================== diff -u -r2648 -r2655 --- DamClients/DamUI/trunk/src/Dam/Tests/CalculationParametersAssemblerTest.cs (.../CalculationParametersAssemblerTest.cs) (revision 2648) +++ DamClients/DamUI/trunk/src/Dam/Tests/CalculationParametersAssemblerTest.cs (.../CalculationParametersAssemblerTest.cs) (revision 2655) @@ -69,9 +69,24 @@ XDocument inputDocument = XDocument.Parse(inputString); // When parsing, then exception is thrown - Assert.That(() => this.assembler.CreateDomainObject(inputDocument), Throws.TypeOf(typeof(DtoAssemblerException)).With.Message.EqualTo(String.Format("The specified calculation module '{0}' is obsolete", obsoleteElement))); + Assert.That(() => this.assembler.CreateDomainObject(inputDocument), Throws.TypeOf(typeof(DtoAssemblerException)).With.Message.EqualTo(String.Format("The specified parameter '{0}' is obsolete", obsoleteElement))); } + [Test] + [TestCase("ShearStrength")] + [TestCase("Probabilistic")] + [TestCase("IsOverrulePLLineCreationMethod")] + [TestCase("PLLineCreationMethod")] + public void GivenParameterFileWithObsoleteMStabParametersWhenParsingThenExceptionIsThrown(string obsoleteElement) + { + // Given ParameterFile with obsolete MStab parameters + string inputString = File.ReadAllText(testFileName); + inputString = XmlAdapter.ChangeKeyName(inputString, "CalculationModel", obsoleteElement); + XDocument inputDocument = XDocument.Parse(inputString); + // When parsing, then exception is thrown + Assert.That(() => this.assembler.CreateDomainObject(inputDocument), Throws.TypeOf(typeof(DtoAssemblerException)).With.Message.EqualTo(String.Format("The specified parameter '{0}' is obsolete", obsoleteElement))); + } + [Test] public void CreateEntityFromDto() { @@ -101,11 +116,8 @@ Assert.AreEqual(false, calculationParameters.MStabParameters.IsCalculateAllStabilityProjectsAtOnce, "MStabParameters.IsCalculateAllStabilityProjectsAtOnce"); Assert.AreEqual(MStabModelType.UpliftVan, calculationParameters.MStabParameters.Model, "MStabParameters.Model"); - Assert.AreEqual(MStabShearStrength.StressTables, calculationParameters.MStabParameters.ShearStrength, "MStabParameters.ShearStrength"); Assert.AreEqual(MStabSearchMethod.Grid, calculationParameters.MStabParameters.SearchMethod, "MStabParameters.SearchMethod"); - Assert.AreEqual(false, calculationParameters.MStabParameters.IsProbabilistic, "MStabParameters.IsProbabilistic"); Assert.IsTrue(calculationParameters.MStabParameters.CalculationOptions.ZonesType.Equals(MStabZonesType.ForbiddenZone), "MStabParameters.CalculationOptions.ZonesType"); - Assert.AreEqual(true, calculationParameters.MStabParameters.IsOverrulePLLineCreationMethod, "MStabParameters.IsOverrulePLLineCreationMethod"); } } } \ No newline at end of file