From 502aa5e7896229e7e0ebd93456cfc0071b467522 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Thu, 8 Nov 2018 08:56:06 +0100 Subject: [PATCH] adding testcase to read vehicle category 'rigid lorry', adapt declaration xml reader --- .../VectoCommon/Models/VehicleCategory.cs | 2 +- .../XMLDeclarationVehicleDataProvider.cs | 6 +++- .../XML/XMLDeclarationInputTest.cs | 30 +++++++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/VectoCommon/VectoCommon/Models/VehicleCategory.cs b/VectoCommon/VectoCommon/Models/VehicleCategory.cs index 8c59130ffc..ed7c6b96dd 100644 --- a/VectoCommon/VectoCommon/Models/VehicleCategory.cs +++ b/VectoCommon/VectoCommon/Models/VehicleCategory.cs @@ -91,7 +91,7 @@ namespace TUGraz.VectoCommon.Models case VehicleCategory.InterurbanBus: return "Interurban Bus"; case VehicleCategory.RigidTruck: - return "Rigid Truck"; + return "Rigid Lorry"; default: throw new ArgumentOutOfRangeException("vehicleCategory", vehicleCategory, null); } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/XMLDeclarationVehicleDataProvider.cs index e22ffbb70b..2e0e317e28 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/XMLDeclarationVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/XMLDeclarationVehicleDataProvider.cs @@ -79,7 +79,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration public VehicleCategory VehicleCategory { - get { return GetElementValue(XMLNames.Vehicle_VehicleCategory).ParseEnum<VehicleCategory>(); } + get { var val = GetElementValue(XMLNames.Vehicle_VehicleCategory); + if ("Rigid Lorry".Equals(val, StringComparison.InvariantCultureIgnoreCase)) { + return VehicleCategory.RigidTruck; + } + return val.ParseEnum<VehicleCategory>(); } } public Kilogram CurbMassChassis diff --git a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs index f88d796495..aadd422acf 100644 --- a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs @@ -629,6 +629,9 @@ namespace TUGraz.VectoCore.Tests.XML var vehicleCategories = GetEnumOptions("VehicleCategoryDeclarationType", "1.0"); var allowedCategories = DeclarationData.Segments.GetVehicleCategories(); foreach (var vehicleCategory in vehicleCategories) { + if (vehicleCategory.Equals("Rigid Truck")) { + continue; // Rigid Truck has been renamed to Rigid Lorry. The XML contains this entry for backward compatibility (separate testcase) + } var reader = XmlReader.Create(SampleVehicleDecl); var doc = new XmlDocument(); @@ -984,6 +987,33 @@ namespace TUGraz.VectoCore.Tests.XML Assert.AreEqual(PredictiveCruiseControlType.None, adas.PredictiveCruiseControl); } + [TestCase(SampleVehicleFullDeclUpdated)] + public void TestRigidTruckIsReadAsRigidLorry(string file) + { + var reader = XmlReader.Create(file); + + var doc = new XmlDocument(); + doc.Load(reader); + var nav = doc.CreateNavigator(); + var manager = new XmlNamespaceManager(nav.NameTable); + var helper = new XPathHelper(ExecutionMode.Declaration); + helper.AddNamespaces(manager); + + var vehicleCategoryNode = nav.SelectSingleNode(helper.QueryAbs( + helper.NSPrefix(XMLNames.VectoInputDeclaration, Constants.XML.RootNSPrefix), + XMLNames.Component_Vehicle, + XMLNames.Vehicle_VehicleCategory), manager); + vehicleCategoryNode.SetValue("Rigid Truck"); + + var modified = XmlReader.Create(new StringReader(nav.OuterXml)); + + var inputDataProvider = new XMLDeclarationInputDataProvider(modified, true); + + var vehCategory = inputDataProvider.JobInputData.Vehicle.VehicleCategory; + + Assert.AreEqual(VehicleCategory.RigidTruck, vehCategory); + } + public static string[] GetEnumOptions(string xmlType, string schemaVersion) { Stream resource; -- GitLab