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

Skip to content
Snippets Groups Projects
Commit 94eee31f authored by Harald Martini's avatar Harald Martini
Browse files

Updated VehicleWriter for exempted Vehicle,

added Testcase Loading Exempted vif and save inputdata
parent 52618a49
No related branches found
No related tags found
No related merge requests found
......@@ -51,7 +51,6 @@ namespace VECTO3GUI2020.Util.XML.Implementation
{
if (_Xelement == null) {
Initialize();
CreateElements();
}
return _Xelement;
......@@ -192,12 +191,13 @@ namespace VECTO3GUI2020.Util.XML.Implementation
public class XMLVehicleWriter_v2_8 : XMLVehicleWriter
{
private readonly bool _exempted;
public static readonly string[] SUPPORTEDVERSIONS = {
typeof(DeclarationInterimStageBusVehicleViewModel_v2_8).ToString()
};
public XMLVehicleWriter_v2_8(IVehicleDeclarationInputData inputData, IXMLWriterFactory xmlWriterFactory) : base(inputData, xmlWriterFactory)
{
_exempted = inputData.ExemptedVehicle;
}
......@@ -210,13 +210,20 @@ namespace VECTO3GUI2020.Util.XML.Implementation
_Xelement = new XElement(XMLNamespaces.V20 + XMLNames.Component_Vehicle);
_Xelement.Add(new XAttribute(XMLNames.Component_ID_Attr, "TODO_ADDIDENTIFIER"));
_Xelement.Add(new XAttribute(XMLNamespaces.Xsi + XMLNames.Attr_Type, "InterimStageInputType"));
if (_exempted) {
_Xelement.Add(new XAttribute(XMLNamespaces.Xsi + XMLNames.Attr_Type, "ExemptedInterimStageInputType"));
} else {
_Xelement.Add(new XAttribute(XMLNamespaces.Xsi + XMLNames.Attr_Type, "InterimStageInputType"));
}
}
protected override void CreateElements()
{
if (_exempted) {
CreateExemptedElements();
return;
}
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Manufacturer, _inputData.Manufacturer));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_ManufacturerAddress,
_inputData.ManufacturerAddress));
......@@ -226,14 +233,10 @@ namespace VECTO3GUI2020.Util.XML.Implementation
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Model, _inputData.Model));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_LegislativeCategory, _inputData.LegislativeClass.ToXMLFormat()));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_CorrectedActualMass, _inputData.CurbMassChassis?.ToXMLFormat(0)));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_TPMLM,
_inputData.GrossVehicleMassRating?.ToXMLFormat(0)));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_AirdragModifiedMultistage, _inputData.AirdragModifiedMultistage));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_NgTankSystem, _inputData.TankSystem));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_RegisteredClass, _inputData.RegisteredClass.ToXMLFormat()));
......@@ -246,7 +249,6 @@ namespace VECTO3GUI2020.Util.XML.Implementation
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_LowEntry, _inputData.LowEntry));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_HeighIntegratedBody, _inputData.Height?.ConvertToMilliMeter()));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_VehicleLength, _inputData.Length?.ConvertToMilliMeter()));
......@@ -309,6 +311,33 @@ namespace VECTO3GUI2020.Util.XML.Implementation
}
private void CreateExemptedElements()
{
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Manufacturer, _inputData.Manufacturer));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_ManufacturerAddress,
_inputData.ManufacturerAddress));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_VIN, _inputData.VIN));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Date, DateTime.Today.ToXmlFormat()));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Model, _inputData.Model));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_LegislativeCategory, _inputData.LegislativeClass.ToXMLFormat()));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_CorrectedActualMass, _inputData.CurbMassChassis?.ToXMLFormat(0)));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_TPMLM,
_inputData.GrossVehicleMassRating?.ToXMLFormat(0)));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_RegisteredClass, _inputData.RegisteredClass.ToXMLFormat()));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_NumberPassengersLowerDeck, _inputData.NumberPassengerSeatsLowerDeck));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_NumberPassengersUpperDeck, _inputData.NumberPassengerSeatsUpperDeck));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_BodyworkCode, _inputData.VehicleCode.ToXMLFormat()));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_LowEntry, _inputData.LowEntry));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_HeighIntegratedBody, _inputData.Height?.ConvertToMilliMeter()));
}
#endregion
}
......
......@@ -14,6 +14,7 @@ using System.Xml;
using Castle.Core.Internal;
using Microsoft.Build.Framework;
using TUGraz.VectoCommon.BusAuxiliaries;
using TUGraz.VectoCommon.Exceptions;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Utils;
......@@ -340,6 +341,16 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
public void SetVehicleInputData(IVehicleDeclarationInputData vehicleInputData)
{
if (vehicleInputData.ExemptedVehicle != ExemptedVehicle) {
throw new VectoException("Only exempted stage inputs are allowed");
}
if (ExemptedVehicle) {
SetExemptedVehicleInputData(vehicleInputData);
return;
}
Manufacturer = vehicleInputData.Manufacturer;
Identifier = vehicleInputData.Identifier;
ManufacturerAddress = vehicleInputData.ManufacturerAddress;
......@@ -383,6 +394,23 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
OnPropertyChanged(string.Empty);
}
private void SetExemptedVehicleInputData(IVehicleDeclarationInputData vehicleInputData)
{
Debug.Assert(vehicleInputData.ExemptedVehicle);
Manufacturer = vehicleInputData.Manufacturer;
Identifier = vehicleInputData.Identifier;
ManufacturerAddress = vehicleInputData.ManufacturerAddress;
VIN = vehicleInputData.VIN;
Model = vehicleInputData.Model;
LegislativeClass = vehicleInputData.LegislativeClass;
CurbMassChassis = vehicleInputData.CurbMassChassis;
GrossVehicleMassRating = vehicleInputData.GrossVehicleMassRating;
RegisteredClass = vehicleInputData.RegisteredClass;
NumberPassengerSeatsUpperDeck = vehicleInputData.NumberPassengerSeatsUpperDeck;
NumberPassengerSeatsLowerDeck = vehicleInputData.NumberPassengerSeatsLowerDeck;
VehicleCode = vehicleInputData.VehicleCode;
Height = vehicleInputData.Height;
}
......@@ -739,12 +767,12 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
public IAirdragDeclarationInputData AirdragInputData
{
get => MultistageAirdragViewModel.AirDragViewModel;
get => MultistageAirdragViewModel?.AirDragViewModel;
}
public IBusAuxiliariesDeclarationData BusAuxiliaries
{
get => MultistageAuxiliariesViewModel.HasValues ? MultistageAuxiliariesViewModel : null;
get => MultistageAuxiliariesViewModel != null && MultistageAuxiliariesViewModel.HasValues ? MultistageAuxiliariesViewModel : null;
}
#region not implemented
......@@ -1138,7 +1166,8 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
{
get
{
return !Error.IsNullOrEmpty() || MultistageAuxiliariesViewModel.HasErrors;
return !Error.IsNullOrEmpty() ||
(MultistageAuxiliariesViewModel != null && MultistageAuxiliariesViewModel.HasErrors);
}
}
#endregion
......
......@@ -41,6 +41,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
public interface IMultiStageJobViewModel : IDeclarationMultistageJobInputData, IMultistageVIFInputData, IMultistageBusInputDataProvider, IJobViewModel, IEditViewModel
{
IManufacturingStageViewModel ManufacturingStageViewModel { get; }
bool Exempted { get; }
}
......@@ -75,10 +76,10 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
_dialogHelper = multistageDependencies.DialogHelperLazy;
_inputDataReader = inputDataReader;
var exempted = PrimaryVehicle.Vehicle.ExemptedVehicle;
_exempted = PrimaryVehicle.Vehicle.ExemptedVehicle;
_manufacturingStageViewModel =
vmFactory.GetManufacturingStageViewModel(_consolidateManufacturingStage, exempted);
vmFactory.GetManufacturingStageViewModel(_consolidateManufacturingStage, _exempted);
// QUESTION: HEV/PEV ?
//var hybridElectric = inputData.PrimaryVehicleData.Vehicle.HybridElectricHDV;
......@@ -221,7 +222,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
SaveInputDataExecute(filename:null);
}, () => true);
private void SaveInputDataExecute(string filename)
public void SaveInputDataExecute(string filename)
{
if(_manufacturingStageViewModel.Vehicle is IMultistageVehicleViewModel vehicleViewModel)
{
......@@ -306,6 +307,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
private readonly DataSource _dataSource;
private readonly IMultistageBusInputDataProvider _inputData;
private bool _selected;
private readonly bool _exempted;
public ICommand LoadVehicleDataCommand
{
......@@ -434,6 +436,8 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
public string Name => "Multistage";
public bool Exempted => _exempted;
#endregion
}
......
......@@ -13,7 +13,8 @@
<customControls:FilePicker
DockPanel.Dock="Top"
Command="{Binding LoadVehicleDataCommand}"
Text="{Binding VehicleInputDataFilePath, TargetNullValue=Select Vehicle Input Data . . .}"></customControls:FilePicker>
Text="{Binding VehicleInputDataFilePath, TargetNullValue=Select Vehicle Input Data . . .}"/>
<Label DockPanel.Dock="Top" HorizontalAlignment="Center" Visibility="{Binding Exempted}">Exempted Vehicle</Label>
<Border BorderThickness="1" BorderBrush="{DynamicResource ButtonHighlightColor}" Height="40" DockPanel.Dock="Bottom">
<DockPanel LastChildFill="False">
<Button DockPanel.Dock="Right"
......@@ -46,7 +47,6 @@
</DockPanel>
</Border>
<ContentControl DockPanel.Dock="Top" Content="{Binding ManufacturingStageViewModel}"/>
</DockPanel>
</Grid>
</UserControl>
......@@ -28,31 +28,18 @@
<ContentControl Content="{Binding ParameterViewModels[CurbMassChassis]}"/>
<ContentControl Content="{Binding ParameterViewModels[GrossVehicleMassRating]}"/>
<ContentControl Content="{Binding ParameterViewModels[RegisteredClass]}"/>
<Separator/>
<ContentControl
Content="{Binding ParameterViewModels[VehicleCode]}"/>
<ContentControl
Content="{Binding ParameterViewModels[LowEntry]}"/>
<Separator/>
<ContentControl
Content="{Binding ParameterViewModels[HeightInMm]}"/>
<Separator/>
<Label Style="{DynamicResource LabelStyle1}">Number of Passengers</Label>
<ContentControl
Content="{Binding ParameterViewModels[NumberPassengerSeatsLowerDeck]}"/>
<ContentControl
Content="{Binding ParameterViewModels[NumberPassengerSeatsUpperDeck]}"/>
<ContentControl
Content="{Binding ParameterViewModels[NumberPassengersStandingLowerDeck]}"/>
<ContentControl
Content="{Binding ParameterViewModels[NumberPassengersStandingUpperDeck]}"/>
......
<?xml version="1.0" encoding="utf-8"?>
<VectoOutputMultistage xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd">
<PrimaryVehicle xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1">
<Data id="VEH-4cb168560c0d4b3d886d" xsi:type="PrimaryVehicleDataType">
<Vehicle xsi:type="VehicleExemptedPrimaryBusType">
<ManufacturerPrimaryVehicle>Some Manufacturer</ManufacturerPrimaryVehicle>
<ManufacturerAddressPrimaryVehicle>Infinite Loop 1</ManufacturerAddressPrimaryVehicle>
<Model>Sample Bus Model</Model>
<VIN>VEH-1234567890</VIN>
<Date>2017-02-15T11:00:00Z</Date>
<LegislativeCategory>N2</LegislativeCategory>
<ChassisConfiguration>Bus</ChassisConfiguration>
<AxleConfiguration>6x2</AxleConfiguration>
<Articulated>false</Articulated>
<TechnicalPermissibleMaximumLadenMass unit="kg">15400.0</TechnicalPermissibleMaximumLadenMass>
<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
<SumNetPower unit="W">350000</SumNetPower>
<Technology>Fuel cell vehicle</Technology>
</Vehicle>
<InputDataSignature>
<di:Reference URI="#VEH-1234567890">
<di:Transforms>
<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" />
<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</di:Transforms>
<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
<di:DigestValue>sYhNx2MDHaOAMTlPflP/qQbEkazmRDxY0Vw6yzwwcJc=</di:DigestValue>
</di:Reference>
</InputDataSignature>
<ManufacturerRecordSignature>
<di:Reference URI="#RESULT-4c4c52e522874a398b3a">
<di:Transforms>
<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" />
<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</di:Transforms>
<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
<di:DigestValue>guwkv90jOyWgDpgQwAEbLRkq7pWGeVaGA+dHizLYufQ=</di:DigestValue>
</di:Reference>
</ManufacturerRecordSignature>
<Results>
<Status>success</Status>
<ExemptedVehicle />
</Results>
<ApplicationInformation>
<SimulationToolVersion>0.7.3.2247-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion>
<Date>2021-06-15T16:00:43.6769906Z</Date>
</ApplicationInformation>
</Data>
<Signature>
<di:Reference URI="#VEH-4cb168560c0d4b3d886d">
<di:Transforms>
<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" />
<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</di:Transforms>
<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
<di:DigestValue>KeeEnRNO5Gjm7XB+YYx542ujYbE0k7a9SkWe/BWo7bI=</di:DigestValue>
</di:Reference>
</Signature>
</PrimaryVehicle>
</VectoOutputMultistage>
\ No newline at end of file
......@@ -109,6 +109,9 @@
<None Update="inputdata\vecto_vehicle-completed_heavyBus_31b.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="TestData\exempted_primary_heavyBus.VIF.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="TestData\final.VIF_Report_4.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
......
using System;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Runtime.CompilerServices;
......@@ -29,13 +30,13 @@ namespace Vecto3GUI2020Test
public class LoadAndSaveVehicleData : ViewModelTestBase
{
[Test]
public void loadInputFileMultipleStage()
public void LoadInputFileMultipleStage()
{
loadFile(consolidated_multiple_stages);
}
[Test]
public void loadPrimaryAndSaveVehicleData()
public void LoadPrimaryAndSaveVehicleData()
{
//Load Primary Vehicle VIF
var newMultiStageJob = loadFile(primary_vehicle_only);
......@@ -63,7 +64,7 @@ namespace Vecto3GUI2020Test
}
[Test]
public void loadPrimaryAndSave()
public void LoadPrimaryAndSave()
{
//load file
var newMultiStageJob = loadFile(primary_vehicle_only);
......@@ -71,6 +72,79 @@ namespace Vecto3GUI2020Test
}
[Test, Combinatorial]
public void LoadAndSaveExemptedPrimary(
[Values(LegislativeClass.M3)] LegislativeClass legislativeCategory
)
{
string exempted = "exempted_primary_heavyBus.VIF.xml";
var newMultiStageJob = loadFile(exempted);
Assert.IsTrue(newMultiStageJob.MultiStageJobViewModel.Exempted);
var multistageJobViewModel = newMultiStageJob.MultiStageJobViewModel as MultiStageJobViewModel_v0_1;
var outputPath = GetFullPath("test1.xml");
var vehicleVm =
multistageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as
DeclarationInterimStageBusVehicleViewModel_v2_8;
Assert.IsTrue(vehicleVm.ExemptedVehicle);
var manufacturer = "TestManufacturer";
var manufacturerAddress = "TestManufacturerAddress";
var vehicleIdentificationNumber = "12345678";
var model = "model";
var curbMassChassis = Kilogram.Create(123456);
var technicalpermissableLadenMass = Kilogram.Create(654321);
var registeredClass = RegistrationClass.II_III;
var bodyWorkCode = VehicleCode.CG;
var lowEntry = false;
var height = Meter.Create(1.5).ConvertToMilliMeter();
var PassengerSeatsLowerDeck = 4;
var passengerSeatsUpperDeck = 12;
vehicleVm.ParameterViewModels[nameof(vehicleVm.Manufacturer)].CurrentContent = manufacturer;
vehicleVm.ParameterViewModels[nameof(vehicleVm.ManufacturerAddress)].CurrentContent = manufacturerAddress;
vehicleVm.ParameterViewModels[nameof(vehicleVm.HeightInMm)].CurrentContent = height;
vehicleVm.ParameterViewModels[nameof(vehicleVm.VIN)].CurrentContent = vehicleIdentificationNumber;
vehicleVm.ParameterViewModels[nameof(vehicleVm.Model)].CurrentContent = model;
vehicleVm.ParameterViewModels[nameof(vehicleVm.LegislativeClass)].CurrentContent = legislativeCategory;
vehicleVm.ParameterViewModels[nameof(vehicleVm.CurbMassChassis)].CurrentContent = curbMassChassis;
vehicleVm.ParameterViewModels[nameof(vehicleVm.GrossVehicleMassRating)].CurrentContent = technicalpermissableLadenMass;
vehicleVm.ParameterViewModels[nameof(vehicleVm.RegisteredClass)].CurrentContent = registeredClass;
vehicleVm.ParameterViewModels[nameof(vehicleVm.VehicleCode)].CurrentContent = bodyWorkCode;
vehicleVm.ParameterViewModels[nameof(vehicleVm.LowEntry)].CurrentContent = lowEntry;
vehicleVm.ParameterViewModels[nameof(vehicleVm.NumberPassengerSeatsLowerDeck)].CurrentContent = PassengerSeatsLowerDeck;
vehicleVm.ParameterViewModels[nameof(vehicleVm.NumberPassengerSeatsUpperDeck)].CurrentContent = passengerSeatsUpperDeck;
multistageJobViewModel.SaveInputDataExecute(outputPath);
Assert.AreEqual(outputPath, multistageJobViewModel.VehicleInputDataFilePath);
Assert.AreEqual( manufacturer, vehicleVm.Manufacturer);
Assert.AreEqual(manufacturerAddress, vehicleVm.ManufacturerAddress);
Assert.AreEqual(height, vehicleVm.HeightInMm);
Assert.AreEqual(model, vehicleVm.Model);
Assert.AreEqual(legislativeCategory, vehicleVm.LegislativeClass);
Assert.AreEqual(curbMassChassis, vehicleVm.CurbMassChassis);
Assert.AreEqual(technicalpermissableLadenMass, vehicleVm.GrossVehicleMassRating);
Assert.AreEqual(registeredClass, vehicleVm.RegisteredClass);
Assert.AreEqual(bodyWorkCode, vehicleVm.VehicleCode);
Assert.AreEqual(lowEntry, vehicleVm.LowEntry);
Assert.AreEqual(passengerSeatsUpperDeck, vehicleVm.NumberPassengerSeatsUpperDeck);
Assert.AreEqual(PassengerSeatsLowerDeck, vehicleVm.NumberPassengerSeatsLowerDeck);
}
......@@ -96,7 +170,7 @@ namespace Vecto3GUI2020Test
}
[Test]
public void reloadInputFile()
public void ReloadInputFile()
{
var newMultistageJobViewModel = loadFile(consolidated_multiple_stages_airdrag) as NewMultiStageJobViewModel;
......@@ -120,13 +194,13 @@ namespace Vecto3GUI2020Test
[Test]
public void loadInputFileMultipleStageAirdrag()
public void LoadInputFileMultipleStageAirdrag()
{
loadFile(consolidated_multiple_stages_airdrag);
}
[Test]
public void loadAndSaveFullInputDataSample()
public void LoadAndSaveFullInputDataSample()
{
var vm = loadFile(primary_vehicle_only);
var multiStageJobViewModel = vm.MultiStageJobViewModel as MultiStageJobViewModel_v0_1;
......@@ -191,33 +265,33 @@ namespace Vecto3GUI2020Test
Assert.IsTrue(vehicleViewModel.VIN.IsNullOrEmpty());
Assert.IsNull(vehicleViewModel.Model);
var vehicleViewModel_v2_8 = vehicleViewModel as DeclarationInterimStageBusVehicleViewModel_v2_8;
Assert.NotNull(vehicleViewModel_v2_8);
var vehicleViewModelV28 = vehicleViewModel as DeclarationInterimStageBusVehicleViewModel_v2_8;
Assert.NotNull(vehicleViewModelV28);
Assert.Null(vehicleViewModel_v2_8.HeightInMm);
Assert.Null(vehicleViewModel_v2_8.LengthInMm);
Assert.Null(vehicleViewModel_v2_8.WidthInMm);
Assert.Null(vehicleViewModel_v2_8.EntranceHeightInMm);
Assert.Null(vehicleViewModelV28.HeightInMm);
Assert.Null(vehicleViewModelV28.LengthInMm);
Assert.Null(vehicleViewModelV28.WidthInMm);
Assert.Null(vehicleViewModelV28.EntranceHeightInMm);
Assert.Null(vehicleViewModel_v2_8.ConsolidatedHeightInMm);
Assert.Null(vehicleViewModel_v2_8.ConsolidatedLengthInMm);
Assert.Null(vehicleViewModel_v2_8.ConsolidatedWidthInMm);
Assert.Null(vehicleViewModel_v2_8.ConsolidatedEntranceHeightInMm);
Assert.Null(vehicleViewModelV28.ConsolidatedHeightInMm);
Assert.Null(vehicleViewModelV28.ConsolidatedLengthInMm);
Assert.Null(vehicleViewModelV28.ConsolidatedWidthInMm);
Assert.Null(vehicleViewModelV28.ConsolidatedEntranceHeightInMm);
Assert.IsFalse(vehicleViewModel_v2_8.AirdragModifiedMultistageEditingEnabled);
Assert.IsFalse(vehicleViewModelV28.AirdragModifiedMultistageEditingEnabled);
Assert.IsNull(vehicleViewModel_v2_8.AirdragModifiedMultistage);
Assert.IsNull(vehicleViewModel_v2_8.ConsolidatedAirdragModifiedEnum);
Assert.IsTrue(vehicleViewModel_v2_8.AirdragModifiedEnum == AIRDRAGMODIFIED.UNKNOWN || vehicleViewModel_v2_8.AirdragModifiedEnum == null);
Assert.IsNull(vehicleViewModelV28.AirdragModifiedMultistage);
Assert.IsNull(vehicleViewModelV28.ConsolidatedAirdragModifiedEnum);
Assert.IsTrue(vehicleViewModelV28.AirdragModifiedEnum == AIRDRAGMODIFIED.UNKNOWN || vehicleViewModelV28.AirdragModifiedEnum == null);
Assert.AreEqual(vehicleViewModel_v2_8.AirdragModifiedMultistageEditingEnabled, false);
Assert.AreEqual(vehicleViewModelV28.AirdragModifiedMultistageEditingEnabled, false);
Assert.Null(vehicleViewModel_v2_8.BusAuxiliaries);
Assert.Null(vehicleViewModelV28.BusAuxiliaries);
var vifInputData = vm.MultiStageJobViewModel as IMultistageVIFInputData;
......@@ -229,7 +303,7 @@ namespace Vecto3GUI2020Test
[TestCase(consolidated_multiple_stages, null)]
[TestCase(consolidated_one_stage, null)]
[TestCase(primary_vehicle_only, null)]
public void loadAirdragComponentAndSaveVehicleData(string fileName, object expectedAirdragModifiedValue)
public void LoadAirdragComponentAndSaveVehicleData(string fileName, object expectedAirdragModifiedValue)
{
var vm = loadFile(fileName);
......@@ -291,7 +365,7 @@ namespace Vecto3GUI2020Test
[Test]
public void loadVehicleDataTest()
public void LoadVehicleDataTest()
{
......@@ -382,7 +456,7 @@ namespace Vecto3GUI2020Test
Assert.NotNull(airdrag.AirDragViewModel.XMLSource);
TestADASInput(vehicleViewModel);
TestAdasInput(vehicleViewModel);
TestComponents(vehicleViewModel.Components);
TestAirdragComponent(vehicleViewModel.Components.AirdragInputData);
TestAuxiliariesComponent(vehicleViewModel.BusAuxiliaries);
......@@ -392,7 +466,7 @@ namespace Vecto3GUI2020Test
}
private void TestADASInput(IVehicleDeclarationInputData vehicle)
private void TestAdasInput(IVehicleDeclarationInputData vehicle)
{
Assert.AreEqual(true, vehicle.ADAS.EngineStopStart);
Assert.AreEqual(EcoRollType.None, vehicle.ADAS.EcoRoll);
......
......@@ -104,16 +104,18 @@ namespace Vecto3GUI2020Test
var manstageVehicleViewModel = newMultistageJobViewModel.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as DeclarationInterimStageBusVehicleViewModel_v2_8;
Assert.NotNull(manstageVehicleViewModel);
var auxiliariesViewModel = manstageVehicleViewModel.MultistageAuxiliariesViewModel;
Assert.NotNull(auxiliariesViewModel);
Assert.AreEqual(mockDialogHelper.Object.OpenXMLFileDialog(), newMultistageJobViewModel.VifPath);
if (!manstageVehicleViewModel.ExemptedVehicle) {
var auxiliariesViewModel = manstageVehicleViewModel.MultistageAuxiliariesViewModel;
Assert.NotNull(auxiliariesViewModel);
var airdragViewModel = (manstageVehicleViewModel as DeclarationInterimStageBusVehicleViewModel_v2_8)?.MultistageAirdragViewModel;
Assert.NotNull(airdragViewModel);
}
var airdragViewModel = (manstageVehicleViewModel as DeclarationInterimStageBusVehicleViewModel_v2_8)?.MultistageAirdragViewModel;
Assert.NotNull(airdragViewModel);
Assert.AreEqual(mockDialogHelper.Object.OpenXMLFileDialog(), newMultistageJobViewModel.VifPath);
......@@ -132,6 +134,11 @@ namespace Vecto3GUI2020Test
(message, caption, button, image) => {
TestContext.WriteLine($"{caption}\n {message}");
}));
_mockDialogHelper.Setup(dialogHelper =>
dialogHelper.ShowMessageBox(It.IsAny<string>(), It.IsAny<string>()))
.Callback<string, string>((message, caption) =>
TestContext.WriteLine($"{{caption}}\n {message}"));
}
if (fileToLoad != null) {
var filePath = Path.GetFullPath(TestDataDirPath + fileToLoad);
......
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