From a9dab0eebe8a44565d1e70b34a9691c54a9043c3 Mon Sep 17 00:00:00 2001 From: Harald Martini <harald.martini@student.tugraz.at> Date: Thu, 23 Jun 2022 10:57:34 +0200 Subject: [PATCH] added tests for exempted vehicles, fixed missing OutputType in several classes --- .../Resources/XMLNames.Designer.cs | 18 +++++++ .../VectoCommon/Resources/XMLNames.resx | 6 +++ ...LDeclarationExemptedVehicleDataProvider.cs | 12 ++++- .../CIFNinjectModule.cs | 24 +++++++++ .../CIFWriter/VehicleWriter.cs | 45 ++++++++++++++++ .../CustomerInformationFile.cs | 37 +++++++++++-- .../ICustomerInformationFileFactory.cs | 6 ++- .../AbstractManufacturerReport.cs | 4 +- .../IManufacturerReportFactory.cs | 6 +++ .../MRFNinjectModule.cs | 40 ++++++++++++++ .../CompletedBusManufacturerReport.cs | 24 +++++++-- .../LorryManufacturerReports.cs | 16 ++++++ .../PrimaryBusManufacturerReports.cs | 46 ++++++++-------- .../Lorry/LorryGeneralVehicleOutputGroup.cs | 2 +- .../MRFVehicleWriter.cs | 53 ++++++++++++++++++- .../VectoMockup/Ninject/CIFMockupModule.cs | 14 ++++- .../VectoMockup/Ninject/MRFMockupModule.cs | 21 ++++++-- .../VectoMockupTest/MockUpVectoTest.cs | 2 +- 18 files changed, 332 insertions(+), 44 deletions(-) diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs index a926f9db76..180b235fdd 100644 --- a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs +++ b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs @@ -1482,6 +1482,24 @@ namespace TUGraz.VectoCommon.Resources { } } + /// <summary> + /// Looks up a localized string similar to Exempted_CompletedBusOutputType. + /// </summary> + public static string CIF_OutputDataType_Exempted_CompletedBusOutputType { + get { + return ResourceManager.GetString("CIF_OutputDataType_Exempted_CompletedBusOutputType", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Exempted_LorryOutputType. + /// </summary> + public static string CIF_OutputDataType_Exempted_LorryOutputType { + get { + return ResourceManager.GetString("CIF_OutputDataType_Exempted_LorryOutputType", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to HEV_IEPC_S_LorryOutputType. /// </summary> diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.resx b/VectoCommon/VectoCommon/Resources/XMLNames.resx index df5ee1b277..47a8c6793d 100644 --- a/VectoCommon/VectoCommon/Resources/XMLNames.resx +++ b/VectoCommon/VectoCommon/Resources/XMLNames.resx @@ -1974,4 +1974,10 @@ <data name="CIF_OutputDataType_PEV_IEPC_LorryOutputType" xml:space="preserve"> <value>PEV_IEPC_LorryOutputType</value> </data> +<data name="CIF_OutputDataType_Exempted_LorryOutputType" xml:space="preserve"> + <value>Exempted_LorryOutputType</value> +</data> +<data name="CIF_OutputDataType_Exempted_CompletedBusOutputType" xml:space="preserve"> + <value>Exempted_CompletedBusOutputType</value> +</data> </root> \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationExemptedVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationExemptedVehicleDataProvider.cs index a4458e285e..968725b0a7 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationExemptedVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationExemptedVehicleDataProvider.cs @@ -30,7 +30,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 #endregion - public override VehicleCategory VehicleCategory => VehicleCategory.HeavyBusPrimaryVehicle; + public override VehicleCategory VehicleCategory => VehicleCategoryHelper.Parse(GetString(XMLNames.ChassisConfiguration)); public override bool ExemptedVehicle => true; @@ -90,7 +90,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24 public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); - public XMLDeclarationExemptedHeavyLorryDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { } + public XMLDeclarationExemptedHeavyLorryDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) + : base(jobData, xmlNode, sourceFile) { } + + + #region Overrides of XMLDeclarationVehicleDataProviderV10 + + public override Kilogram CurbMassChassis => GetDouble(XMLNames.CorrectedActualMass).SI<Kilogram>(); + + #endregion } // --------------------------------------------------------------------------------------- diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs index 4facfda0f4..cfdfe3d11d 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs @@ -29,6 +29,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation nameCombinationMethod, 6, 6, typeof(ICustomerInformationFileFactory).GetMethod(nameof(ICustomerInformationFileFactory .GetCustomerReport)))).InSingletonScope(); + #region Lorry CIF Bind<IXMLCustomerReport>().To<ConventionalLorry_CIF>().Named(nameCombinationMethod( ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.ConventionalVehicle, ArchitectureID.UNKNOWN, false, false, false))); @@ -89,6 +90,16 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation true, false))); + Bind<IXMLCustomerReport>().To<Exempted_Lorry_CIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.Lorry, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + #endregion + #region CompletedBUsCIF + Bind<IXMLCustomerReport>().To<Conventional_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( ToParams(VehicleCategoryHelper.CompletedBus, VectoSimulationJobType.ConventionalVehicle, @@ -121,6 +132,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation false, false))); + Bind<IXMLCustomerReport>().To<Exempted_CompletedBusCIF>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + #endregion #region VehicleTypes Bind<IXmlTypeWriter>().To<CIFConventionalLorryVehicleWriter>().When(AccessedViaCIFFactory) @@ -153,9 +172,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation Bind<IXmlTypeWriter>().To<CIF_PEV_IEPC_LorryVehicleWriter>().When(AccessedViaCIFFactory) .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_IEPC_LorryVehicleType()); + Bind<IXmlTypeWriter>().To<CIF_Exempted_LorryVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetExempted_LorryVehicleType()); + Bind<IXmlTypeWriter>().To<CIF_ConventionalCompletedBusVehicleWriter>().When(AccessedViaCIFFactory) .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetConventional_CompletedBusVehicleType()); + Bind<IXmlTypeWriter>().To<CIF_ExemptedCompletedBusVehicleWriter>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetExemptedCompletedBusVehicleType()); #endregion #region VehicleGroups Bind<IReportVehicleOutputGroup>().To<GeneralVehicleOutputSequenceGroupCif>().When(AccessedViaCIFFactory) diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs index f4f9cf5e31..59c4c5d765 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs @@ -306,6 +306,32 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation #endregion } + public class CIF_Exempted_LorryVehicleWriter : VehicleWriter + { + public CIF_Exempted_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var vehicleData = inputData.JobInputData.Vehicle; + return new XElement(_cif + XMLNames.Component_Vehicle, + _cifFactory.GetGeneralVehicleSequenceGroupWriter().GetElements(vehicleData), + new XElement(_cif + "VehicleGroupCO2", "todo"), + new XElement(_cif + XMLNames.Component_Manufacturer, vehicleData.Manufacturer), + new XElement(_cif + XMLNames.Component_ManufacturerAddress, vehicleData.ManufacturerAddress), + new XElement(_cif + XMLNames.Component_Model, vehicleData.Model), + + new XElement(_cif + XMLNames.CorrectedActualMass, vehicleData.CurbMassChassis), + new XElement(_cif + XMLNames.Vehicle_SleeperCab, vehicleData.SleeperCab), + new XElement(_cif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicleData.ZeroEmissionVehicle), + new XElement(_cif + XMLNames.Vehicle_HybridElectricHDV, vehicleData.HybridElectricHDV) + ); + } + + #endregion + } + public class CIF_ConventionalCompletedBusVehicleWriter : VehicleWriter { public CIF_ConventionalCompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } @@ -325,4 +351,23 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation #endregion } + + + + + + + public class CIF_ExemptedCompletedBusVehicleWriter : VehicleWriter + { + public CIF_ExemptedCompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { } + + #region Overrides of VehicleWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + throw new NotImplementedException(); + } + + #endregion + } } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs index d732379fb5..27077ebcb9 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs @@ -167,6 +167,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation #endregion } + + public class PEV_IEPC_Lorry_CIF : CustomerInformationFile { public override string OutputDataType => XMLNames.CIF_OutputDataType_PEV_IEPC_LorryOutputType; @@ -182,18 +184,28 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation #endregion } - #endregion - + public class Exempted_Lorry_CIF : CustomerInformationFile + { + public Exempted_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + #region Overrides of AbstractCustomerReport + public override string OutputDataType => XMLNames.CIF_OutputDataType_Exempted_LorryOutputType; + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetExempted_LorryVehicleType().GetElement(inputData); + } + #endregion + } + #endregion - #region CompletedBus - public class Conventional_CompletedBusCIF : CustomerInformationFile + #region CompletedBus + public class Conventional_CompletedBusCIF : CustomerInformationFile { public override string OutputDataType => "Conventional_CompletedBusOutputType"; @@ -234,5 +246,22 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation } } + + public class Exempted_CompletedBusCIF : CustomerInformationFile + { + public Exempted_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCustomerReport + + public override string OutputDataType => XMLNames.CIF_OutputDataType_Exempted_CompletedBusOutputType; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _cifFactory.GetExemptedCompletedBusVehicleType().GetElement(inputData); + } + + #endregion + } + #endregion } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs index 835445c05e..8adb4ed243 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs @@ -28,11 +28,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation IXmlTypeWriter GetPEV_E4_LorryVehicleType(); IXmlTypeWriter GetPEV_IEPC_LorryVehicleType(); + IXmlTypeWriter GetExempted_LorryVehicleType(); IXmlTypeWriter GetConventional_CompletedBusVehicleType(); IXmlTypeWriter GetHEV_CompletedBusVehicleType(); IXmlTypeWriter GetPEV_CompletedBusVehicleType(); + IXmlTypeWriter GetExemptedCompletedBusVehicleType(); + IReportVehicleOutputGroup GetGeneralVehicleSequenceGroupWriter(); IReportOutputGroup GetLorryGeneralVehicleSequenceGroupWriter(); @@ -50,6 +53,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation IReportOutputGroup GetPEV_VehicleSequenceGroupWriter(); IReportOutputGroup GetCompletedBusVehicleTypeGroup(); IReportCompletedBusOutputGroup GetGeneralVehicleSequenceGroupWriterCompletedBus(); - + + } } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs index b8187271f2..38f3e6df54 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs @@ -15,9 +15,7 @@ using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9 { - - - internal abstract class AbstractManufacturerReport : IXMLManufacturerReport + public abstract class AbstractManufacturerReport : IXMLManufacturerReport { protected XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); public static XNamespace Mrf => XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9"); diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/IManufacturerReportFactory.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/IManufacturerReportFactory.cs index 4bc193b495..4b0afcf564 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/IManufacturerReportFactory.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/IManufacturerReportFactory.cs @@ -24,6 +24,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. IXmlTypeWriter GetPEV_E4_LorryVehicleType(); IXmlTypeWriter GetPEV_IEPC_LorryVehicleType(); + IXmlTypeWriter GetExempted_LorryVehicleType(); @@ -40,10 +41,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. IXmlTypeWriter GetPEV_E4_PrimaryBusVehicleType(); IXmlTypeWriter GetPEV_IEPC_PrimaryBusVehicleType(); + IXmlTypeWriter GetExempted_PrimaryBusVehicleType(); + IXmlTypeWriter GetConventional_CompletedBusVehicleType(); IXmlTypeWriter GetHEV_CompletedBusVehicleType(); IXmlTypeWriter GetPEV_CompletedBusVehicleType(); + IXmlTypeWriter GetExempted_CompletedBusVehicleType(); + IXmlTypeWriter GetConventionalLorryComponentsType(); IXmlTypeWriter GetHEV_Px_IHCP_LorryComponentsType(); @@ -137,6 +142,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. IReportVehicleOutputGroup GetCompletedBusDimensionSequenceGroup(); IMrfBusAuxGroup GetCompletedBus_HVACSystemGroup(); IMrfVehicleType GetBoostingLimitationsType(); + } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs index f1af3df91d..d232b241ca 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs @@ -86,6 +86,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. 6, 6, typeof(IManufacturerReportFactory).GetMethod(nameof(IManufacturerReportFactory.GetManufacturerReport)))).InSingletonScope(); Bind<IXMLManufacturerReport>().To<ConventionalLorryManufacturerReport>() .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalLorryManufacturerReport()); + + #region LorryMRF Bind<IXMLManufacturerReport>().To<ConventionalLorryManufacturerReport>().Named( nameCombinationMethod.Invoke(ToParams( VehicleCategoryHelper.Lorry, @@ -175,6 +177,16 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. true, false))); + Bind<IXMLManufacturerReport>().To<Exempted_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.Lorry, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + + #endregion + #region PrimaryBUSMRF Bind<IXMLManufacturerReport>().To<Conventional_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( ToParams(VehicleCategoryHelper.PrimaryBus, VectoSimulationJobType.ConventionalVehicle, @@ -252,6 +264,17 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, true, false))); + Bind<IXMLManufacturerReport>().To<Exempted_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.PrimaryBus, + VectoSimulationJobType.BatteryElectricVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + + + #endregion + #region CompletedBus MRF Bind<IXMLManufacturerReport>().To<Conventional_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( ToParams(VehicleCategoryHelper.CompletedBus, @@ -261,6 +284,17 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. false, false))); + Bind<IXMLManufacturerReport>().To<Exempted_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke( + ToParams(VehicleCategoryHelper.CompletedBus, + VectoSimulationJobType.ConventionalVehicle, + ArchitectureID.UNKNOWN, + true, + false, + false))); + + + + #endregion #region Vehicle @@ -284,6 +318,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E4_LorryVehicleType()); Bind<IXmlTypeWriter>().To<PevIEPCLorryVehicleTypeWriter>().When(AccessedViaMRFFactory) .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_IEPC_LorryVehicleType()); + Bind<IXmlTypeWriter>().To<ExemptedLorryVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetExempted_LorryVehicleType()); Bind<IXmlTypeWriter>().To<ConventionalPrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory) .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventional_PrimaryBusVehicleType()); @@ -305,6 +341,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E4_PrimaryBusVehicleType()); Bind<IXmlTypeWriter>().To<PevIepcPrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory) .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_IEPC_PrimaryBusVehicleType()); + Bind<IXmlTypeWriter>().To<ExemptedPrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetExempted_PrimaryBusVehicleType()); Bind<IXmlTypeWriter>().To<ConventionalCompletedBusVehicleTypeWriter>().When(AccessedViaMRFFactory) .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventional_CompletedBusVehicleType()); @@ -312,6 +350,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_CompletedBusVehicleType()); Bind<IXmlTypeWriter>().To<PevCompletedBusVehicleTypeWriter>().When(AccessedViaMRFFactory) .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_CompletedBusVehicleType()); + Bind<IXmlTypeWriter>().To<ExemptedCompletedBusVehicleTypeWriter>().When(AccessedViaMRFFactory) + .NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetExempted_CompletedBusVehicleType()); #endregion #region Components Bind<IXmlTypeWriter>().To<ConventionalLorryComponentsTypeWriter>() diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs index 034bfe8a5f..82c6e93c08 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs @@ -31,12 +31,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "ConventionalCompletedBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetConventional_CompletedBusVehicleType().GetElement(inputData); - GenerateReport("ConventionalCompletedBusManufacturerOutputDataType"); + GenerateReport(OutputDataType); } @@ -66,12 +66,28 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "PEV_CompletedBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetConventional_CompletedBusVehicleType().GetElement(inputData); - GenerateReport("PEVCompletedBusManufacturerOutputDataType"); + GenerateReport(OutputDataType); + } + + #endregion + } + + internal class Exempted_CompletedBusManufacturerReport : CompletedBusManufacturerReportBase + { + public Exempted_CompletedBusManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "ExemptedCompletedBusManufacturerOutputDataType"; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + throw new NotImplementedException(); } #endregion diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs index 0efe3fa90a..54b00b10bc 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs @@ -202,4 +202,20 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #endregion } + + internal class Exempted_LorryManufacturerReport : LorryManufacturerReportBase + { + public Exempted_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { } + + #region Overrides of AbstractManufacturerReport + + public override string OutputDataType => "ExemptedLorryManufacturerOutputDataType"; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetExempted_LorryVehicleType().GetElement(inputData); + } + + #endregion + } } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs index ca988f79c0..1d75abef3a 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs @@ -3,6 +3,7 @@ using System.Xml.Linq; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport { @@ -45,14 +46,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "HEV-Px_IHPCPrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetHEV_Px_IHPC_PrimaryBusVehicleType().GetElement(inputData); - - - GenerateReport("HEV-Px_IHPCPrimaryBusManufacturerOutputDataType"); } #endregion @@ -65,13 +63,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "HEV-S2_PrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetHEV_S2_PrimaryBusVehicleType().GetElement(inputData); - - GenerateReport("HEV-S2_PrimaryBusManufacturerOutputDataType"); } #endregion @@ -83,12 +79,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "HEV-S3_PrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetHEV_S3_PrimaryBusVehicleType().GetElement(inputData); - GenerateReport("HEV-S3_PrimaryBusManufacturerOutputDataType"); } #endregion @@ -100,12 +95,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "HEV-S4_PrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetHEV_S4_PrimaryBusVehicleType().GetElement(inputData); - GenerateReport("HEV-S4_PrimaryBusManufacturerOutputDataType"); + } #endregion @@ -118,12 +113,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "HEV-IEPC-S_PrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetHEV_IEPC_S_PrimaryBusVehicleType().GetElement(inputData); - GenerateReport("HEV-IEPC-S_PrimaryBusManufacturerOutputDataType"); } #endregion @@ -135,12 +129,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "PEV-E2_PrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetPEV_E2_PrimaryBusVehicleType().GetElement(inputData); - GenerateReport("PEV-E2_PrimaryBusManufacturerOutputDataType"); } #endregion @@ -153,12 +146,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "PEV-E3_PrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetPEV_E3_PrimaryBusVehicleType().GetElement(inputData); - GenerateReport("PEV-E3_PrimaryBusManufacturerOutputDataType"); } #endregion @@ -175,12 +167,10 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } - + public override string OutputDataType => "PEV-E4_PrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetPEV_E4_PrimaryBusVehicleType().GetElement(inputData); - GenerateReport("PEV-E4_PrimaryBusManufacturerOutputDataType"); } #endregion @@ -193,17 +183,29 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #region Overrides of AbstractManufacturerReport - public override string OutputDataType { get; } + public override string OutputDataType => "PEV-IEPC_PrimaryBusManufacturerOutputDataType"; public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) { Vehicle = _mRFReportFactory.GetPEV_IEPC_PrimaryBusVehicleType().GetElement(inputData); - GenerateReport("PEV-IEPC_PrimaryBusManufacturerOutputDataType"); } #endregion } + internal class Exempted_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase + { + public Exempted_PrimaryBus_ManufacturerReport(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractManufacturerReport + public override string OutputDataType => "ExemptedPrimaryBusManufacturerOutputDataType"; + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + Vehicle = _mRFReportFactory.GetExempted_PrimaryBusVehicleType().GetElement(inputData); + } + + #endregion + } } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs index 82606a7d45..814e7af4d8 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs @@ -13,7 +13,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. { public class LorryGeneralVehicleOutputXmlGroup : AbstractReportOutputGroup { - #region Implementation of IMRFGroupWriter + #region Implementation of IMRFGroupWriterb public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) { diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs index bcda900580..a46c1b4d47 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Xml.Linq; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter { @@ -198,7 +199,23 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #endregion } + public class ExemptedLorryVehicleTypeWriter : VehicleTypeWriter + { + public ExemptedLorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of VehicleTypeWriter + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetGeneralLorryVehicleOutputGroup().GetElements(inputData), + new XElement(_mrf + "VehicleTechnologyExempted", inputData.JobInputData.Vehicle.ExemptedTechnology), + new XElement(_mrf + XMLNames.Exempted_SumNetPower, inputData.JobInputData.Vehicle.MaxNetPower1.ValueAsUnit(XMLNames.Unit_W)) + ); + } + + #endregion + } public class ConventionalPrimaryBusVehicleTypeWriter : VehicleTypeWriter @@ -365,6 +382,24 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #endregion } + public class ExemptedPrimaryBusVehicleTypeWriter : VehicleTypeWriter + { + public ExemptedPrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of VehicleTypeWriter + + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetPrimaryBusGeneralVehicleOutputGroup().GetElements(inputData), + new XElement(_mrf + "VehicleTechnologyExempted", inputData.JobInputData.Vehicle.ExemptedTechnology), + new XElement(_mrf + XMLNames.Exempted_SumNetPower, inputData.JobInputData.Vehicle.MaxNetPower1.ValueAsUnit(XMLNames.Unit_W)) + ); + } + + #endregion + } + public class ConventionalCompletedBusVehicleTypeWriter : VehicleTypeWriter { public ConventionalCompletedBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } @@ -416,8 +451,24 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. #endregion } + public class ExemptedCompletedBusVehicleTypeWriter : VehicleTypeWriter + { + public ExemptedCompletedBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + #region Overrides of VehicleTypeWriter + public override XElement GetElement(IDeclarationInputDataProvider inputData) + { + var multistageInputdata = inputData as IMultistageBusInputDataProvider; + if (multistageInputdata == null) + { + throw new ArgumentException($"inputdata must implement {nameof(IMultistageBusInputDataProvider)}"); + } + return new XElement(_mrf + XMLNames.Component_Vehicle, + _mrfFactory.GetCompletedBusGeneralVehicleOutputGroup().GetElements(inputData) + ); + } - + #endregion + } } diff --git a/VectoMockup/VectoMockup/Ninject/CIFMockupModule.cs b/VectoMockup/VectoMockup/Ninject/CIFMockupModule.cs index 174fbc94af..d42cc8c3d8 100644 --- a/VectoMockup/VectoMockup/Ninject/CIFMockupModule.cs +++ b/VectoMockup/VectoMockup/Ninject/CIFMockupModule.cs @@ -93,7 +93,12 @@ namespace TUGraz.VectoMockup.Ninject return _cifFactory.GetPEV_IEPC_LorryVehicleType(); } - public IXmlTypeWriter GetConventional_CompletedBusVehicleType() + public IXmlTypeWriter GetExempted_LorryVehicleType() + { + return _cifFactory.GetExempted_LorryVehicleType(); + } + + public IXmlTypeWriter GetConventional_CompletedBusVehicleType() { return _cifFactory.GetConventional_CompletedBusVehicleType(); } @@ -108,7 +113,12 @@ namespace TUGraz.VectoMockup.Ninject return _cifFactory.GetPEV_CompletedBusVehicleType(); } - public IReportVehicleOutputGroup GetGeneralVehicleSequenceGroupWriter() + public IXmlTypeWriter GetExemptedCompletedBusVehicleType() + { + return _cifFactory.GetExemptedCompletedBusVehicleType(); + } + + public IReportVehicleOutputGroup GetGeneralVehicleSequenceGroupWriter() { return _cifFactory.GetGeneralVehicleSequenceGroupWriter(); } diff --git a/VectoMockup/VectoMockup/Ninject/MRFMockupModule.cs b/VectoMockup/VectoMockup/Ninject/MRFMockupModule.cs index 02d6f3a64f..04732f6a61 100644 --- a/VectoMockup/VectoMockup/Ninject/MRFMockupModule.cs +++ b/VectoMockup/VectoMockup/Ninject/MRFMockupModule.cs @@ -97,7 +97,12 @@ namespace TUGraz.VectoMockup.Ninject return _manufacturerReportFactoryImplementation.GetPEV_IEPC_LorryVehicleType(); } - public IXmlTypeWriter GetConventional_PrimaryBusVehicleType() + public IXmlTypeWriter GetExempted_LorryVehicleType() + { + return _manufacturerReportFactoryImplementation.GetExempted_LorryVehicleType(); + } + + public IXmlTypeWriter GetConventional_PrimaryBusVehicleType() { return _manufacturerReportFactoryImplementation.GetConventional_PrimaryBusVehicleType(); } @@ -147,7 +152,12 @@ namespace TUGraz.VectoMockup.Ninject return _manufacturerReportFactoryImplementation.GetPEV_IEPC_PrimaryBusVehicleType(); } - public IXmlTypeWriter GetConventional_CompletedBusVehicleType() + public IXmlTypeWriter GetExempted_PrimaryBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetExempted_PrimaryBusVehicleType(); + } + + public IXmlTypeWriter GetConventional_CompletedBusVehicleType() { return _manufacturerReportFactoryImplementation.GetConventional_CompletedBusVehicleType(); } @@ -162,7 +172,12 @@ namespace TUGraz.VectoMockup.Ninject return _manufacturerReportFactoryImplementation.GetPEV_CompletedBusVehicleType(); } - public IXmlTypeWriter GetConventionalLorryComponentsType() + public IXmlTypeWriter GetExempted_CompletedBusVehicleType() + { + return _manufacturerReportFactoryImplementation.GetExempted_CompletedBusVehicleType(); + } + + public IXmlTypeWriter GetConventionalLorryComponentsType() { return _manufacturerReportFactoryImplementation.GetConventionalLorryComponentsType(); } diff --git a/VectoMockup/VectoMockupTest/MockUpVectoTest.cs b/VectoMockup/VectoMockupTest/MockUpVectoTest.cs index ef70395951..633cd61dd6 100644 --- a/VectoMockup/VectoMockupTest/MockUpVectoTest.cs +++ b/VectoMockup/VectoMockupTest/MockUpVectoTest.cs @@ -445,7 +445,7 @@ namespace VectoMockupTest [TestCase("TestData/Generic Vehicles/Declaration Mode/40t Long Haul Truck/40t_Long_Haul_Truck.vecto", TestName="JSON_40TLonghaul")] - [TestCase("TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Class9_RigidTruck_DECL.vecto", TestName="JSON_RigitTruckClass9")] + [TestCase("TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Class9_RigidTruck_DECL.vecto", TestName="JSON_RigidTruckClass9")] public void JSONTest(string fileName, bool mockup = true) { -- GitLab