From 15f5ca5ba6355c7834593ed68f97f71dfdf877dc Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Fri, 9 Nov 2018 08:41:32 +0100
Subject: [PATCH] updating testcase for fuel types, new testcase for legacy
 fuel type names

---
 .../XSD/VectoDeclarationDefinitions.1.0.xsd   |  6 +--
 .../XML/XMLDeclarationInputTest.cs            | 38 +++++++++++++++++++
 2 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.1.0.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.1.0.xsd
index 1482f2acb9..1aa3a4afe4 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.1.0.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.1.0.xsd
@@ -1813,9 +1813,9 @@ ToDo: -0.00
 			<xs:enumeration value="LPG PI"/>
 			<xs:enumeration value="NG PI"/>
 			<xs:enumeration value="NG CI"/>
-			<!-- == LPG PI -->
-			<!-- == NG PI -->
-			<!-- dual fuel -->
+			<!-- LPG == LPG PI -->
+			<!-- NG== NG PI -->
+			<!-- NG CI => dual fuel -->
 		</xs:restriction>
 	</xs:simpleType>
 	<xs:simpleType name="GearboxCertificationOptionType">
diff --git a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs
index af41e4aeb5..db7f7a7ee8 100644
--- a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs
@@ -114,6 +114,10 @@ namespace TUGraz.VectoCore.Tests.XML
 		{
 			var fuelTypes = GetEnumOptions("FuelTypeType", "1.0");
 			foreach (var fuel in fuelTypes) {
+				if (!(fuel.EndsWith("CI") || fuel.EndsWith("PI"))) {
+					// new fuel labels end either with CI or PI, others are for backward compatibility. separate testcase
+					continue;
+				}
 				var reader = XmlReader.Create(SampleVehicleDecl);
 
 				var doc = new XmlDocument();
@@ -1014,6 +1018,40 @@ namespace TUGraz.VectoCore.Tests.XML
 			Assert.AreEqual(VehicleCategory.RigidTruck, vehCategory);
 		}
 
+		[TestCase(SampleVehicleFullDecl, "LPG", FuelType.LPGPI),
+			TestCase(SampleVehicleDecl, "NG", FuelType.NGPI)]
+		public void TestFuelTypesLNGandNGBackwardCompatibility(string file, string value, FuelType expectedFuelType)
+		{
+			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 fuelTypeNode = nav.SelectSingleNode(
+				helper.QueryAbs(
+					helper.NSPrefix(
+						XMLNames.VectoInputDeclaration,
+						Constants.XML.RootNSPrefix),
+					XMLNames.Component_Vehicle, XMLNames.Vehicle_Components, XMLNames.Component_Engine,
+					XMLNames.ComponentDataWrapper,
+					XMLNames.Engine_FuelType),
+				manager);
+			
+			fuelTypeNode.SetValue(value);
+
+			var modified = XmlReader.Create(new StringReader(nav.OuterXml));
+
+			var inputDataProvider = new XMLDeclarationInputDataProvider(modified, true);
+
+			var fuelType = inputDataProvider.JobInputData.Vehicle.EngineInputData.FuelType;
+
+			Assert.AreEqual(expectedFuelType, fuelType);
+		}
+
 		public static string[] GetEnumOptions(string xmlType, string schemaVersion)
 		{
 			Stream resource;
-- 
GitLab