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