Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 80fce9f5 authored by Franz KOBER josef's avatar Franz KOBER josef
Browse files

added optional entries for exempted vehicles

parent 954719f4
No related branches found
No related tags found
No related merge requests found
......@@ -1152,8 +1152,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
get
{
return ElementExists(XMLNames.Bus_LegislativeCategory)
? GetString(XMLNames.Bus_LegislativeCategory).ParseEnum<LegislativeClass?>()
: null;
? GetString(XMLNames.Bus_LegislativeCategory).ParseEnum<LegislativeClass>()
: (LegislativeClass?)null;
}
}
......@@ -1192,7 +1192,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
{
return ElementExists(XMLNames.Vehicle_RegisteredClass)
? RegistrationClassHelper.Parse(GetString(XMLNames.Vehicle_RegisteredClass)).First()
: (RegistrationClass?)null;
: null;
}
}
......@@ -1231,10 +1231,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
public override VehicleCode? VehicleCode
{
get {
get
{
return ElementExists(XMLNames.Vehicle_VehicleCode)
? GetString(XMLNames.Vehicle_VehicleCode).ParseEnum<VehicleCode>()
: (VehicleCode?)null; }
: (VehicleCode?)null;
}
}
public override bool? LowEntry
......@@ -1378,31 +1380,63 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
public XMLDeclarationExemptedInterimStageBusDataProviderV28(IXMLDeclarationJobInputData jobData,
XmlNode xmlNode, string sourceFile)
: base(jobData, xmlNode, sourceFile) {}
public override string Model
{
get
{
return ElementExists(XMLNames.Component_Model)
? GetString(XMLNames.Component_Model) : null;
}
}
public override LegislativeClass? LegislativeClass
{
get { return GetString(XMLNames.Bus_LegislativeCategory).ParseEnum<LegislativeClass>(); }
get
{
return ElementExists(XMLNames.Bus_LegislativeCategory)
? GetString(XMLNames.Bus_LegislativeCategory).ParseEnum<LegislativeClass>()
: (LegislativeClass?)null;
}
}
public override Kilogram CurbMassChassis
{
get { return GetDouble(XMLNames.Bus_CorrectedActualMass).SI<Kilogram>(); }
get
{
return ElementExists(XMLNames.Bus_CorrectedActualMass)
? GetDouble(XMLNames.Bus_CorrectedActualMass).SI<Kilogram>()
: null;
}
}
public override Kilogram GrossVehicleMassRating
{
get { return GetDouble(XMLNames.Vehicle_TPMLM).SI<Kilogram>(); }
get
{
return ElementExists(XMLNames.Vehicle_TPMLM)
? GetDouble(XMLNames.Vehicle_TPMLM).SI<Kilogram>()
: null;
}
}
public override RegistrationClass? RegisteredClass
{
get { return RegistrationClassHelper.Parse(GetString(XMLNames.Vehicle_RegisteredClass)).First(); }
get
{
return ElementExists(XMLNames.Vehicle_RegisteredClass)
? RegistrationClassHelper.Parse(GetString(XMLNames.Vehicle_RegisteredClass)).First()
: null;
}
}
public override int NumberOfPassengersLowerDeck
{
get
{
if (!ElementExists(XMLNames.Bus_NumberPassengersLowerDeck))
return 0;
var node = GetNode(XMLNames.Bus_NumberPassengersLowerDeck);
return XmlConvert.ToInt32(node.InnerText);
}
......@@ -1412,6 +1446,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
{
get
{
if (!ElementExists(XMLNames.Bus_NumberPassengersUpperDeck))
return 0;
var node = GetNode(XMLNames.Bus_NumberPassengersUpperDeck);
return XmlConvert.ToInt32(node.InnerText);
}
......@@ -1419,17 +1455,32 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
public override VehicleCode? VehicleCode
{
get { return GetString(XMLNames.Vehicle_VehicleCode).ParseEnum<VehicleCode>(); }
get
{
return ElementExists(XMLNames.Vehicle_VehicleCode)
? GetString(XMLNames.Vehicle_VehicleCode).ParseEnum<VehicleCode>()
: (VehicleCode?)null;
}
}
public override bool? LowEntry
{
get { return GetBool(XMLNames.Bus_LowEntry); }
get
{
return ElementExists(XMLNames.Bus_LowEntry)
? GetBool(XMLNames.Bus_LowEntry)
: (bool?)null;
}
}
public override Meter Height
{
get { return GetDouble(XMLNames.Bus_HeighIntegratedBody).SI<Meter>(); }
get
{
return ElementExists(XMLNames.Bus_HeighIntegratedBody)
? GetDouble(XMLNames.Bus_HeighIntegratedBody).SI<Meter>()
: null;
}
}
public override XmlElement PTONode
......
......@@ -14,9 +14,12 @@ namespace TUGraz.VectoCore.Tests.XML
{
protected IXMLInputDataReader xmlInputReader;
private IKernel _kernel;
const string DirPath = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\";
const string VehicleInterimStageInput = DirPath + "vecto_vehicle-stage_input_full-sample.xml";
const string VehicleExemptedInterimStageInput = DirPath + "vecto_vehicle-exempted_input_full-sample.xml";
const string VehicleExemptedMandatoryOnly = DirPath + "vecto_vehicle-exempted_input_only_mandatory_entries.xml";
const string VehicleInterimStageInput = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_full-sample.xml";
const string VehicleExemptedInterimStageInput = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-exempted_input_full-sample.xml";
[OneTimeSetUp]
public void RunBeforeAnyTests()
......@@ -140,5 +143,31 @@ namespace TUGraz.VectoCore.Tests.XML
Assert.AreEqual(true, vehicle.LowEntry);
Assert.AreEqual(2500, vehicle.Height.Value());
}
[TestCase]
public void TestVehicleExemptedMandatoryInput()
{
var reader = XmlReader.Create(VehicleExemptedMandatoryOnly);
var inputDataProvider = xmlInputReader.CreateDeclaration(reader);
var vehicle = inputDataProvider.JobInputData.Vehicle;
Assert.AreEqual("VEH-1234567890", vehicle.Identifier);
Assert.AreEqual("Some Manufacturer 3", vehicle.Manufacturer);
Assert.AreEqual("Some Manufacturer Address 3", vehicle.ManufacturerAddress);
Assert.AreEqual("VEH-1234567891", vehicle.VIN);
Assert.AreEqual(DateTime.Parse("2021-01-09T11:00:00Z").ToUniversalTime(), vehicle.Date);
Assert.AreEqual(null, vehicle.Model);
Assert.AreEqual(null, vehicle.LegislativeClass);
Assert.AreEqual(null, vehicle.CurbMassChassis);
Assert.AreEqual(null, vehicle.GrossVehicleMassRating);
Assert.AreEqual(null, vehicle.RegisteredClass);
Assert.AreEqual(0, vehicle.NumberOfPassengersLowerDeck);
Assert.AreEqual(0, vehicle.NumberOfPassengersUpperDeck);
Assert.AreEqual(null, vehicle.VehicleCode);
Assert.AreEqual(null, vehicle.LowEntry);
Assert.AreEqual(null, vehicle.Height);
Assert.AreEqual(null, vehicle.Components);
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment