diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAirDragWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAirDragWriter.cs index 0ef9bc19890062b7f1d15363ed3cc40064e645bb..aaeaa4fa379841f7b8f023942b9bab822ff7b9d4 100644 --- a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAirDragWriter.cs +++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLAirDragWriter.cs @@ -25,7 +25,10 @@ namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter public XMLAirDragWriter(IAirdragDeclarationInputData inputData) { _inputData = inputData; - _uri = inputData.DigestValue.Reference.Replace("#",""); + _uri = inputData.DigestValue?.Reference?.Replace("#",""); + if (_uri == null) { + _uri = "AirdragComponent" + Guid.NewGuid().ToString("n").Substring(0, 20); + } } public XElement GetElement() diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs index f28774411e936b911c6f7b40fb8ec0315bef62d7..0d598721867b8c146636aaf010bcf08ca9c2b363 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs @@ -646,7 +646,10 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation public bool? AirdragModifiedMultistage { - get => _airdragModifiedMultistage; + get + { + return _airdragModifiedMultistage; + } set { if (SetProperty(ref _airdragModifiedMultistage, value)) { @@ -657,6 +660,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation }; } } + public bool AirdragModifiedMultistageMandatory { get => _airdragModifiedMultistageMandatory; diff --git a/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs b/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs index a551fdf6720f3c701be3e605234be565333efb90..02f9952a48c1a0aedea16a025506c042093ac4d6 100644 --- a/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs +++ b/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs @@ -225,6 +225,61 @@ namespace Vecto3GUI2020Test Assert.Null(vifInputData.VehicleInputData.Components); } + [TestCase(consolidated_multiple_stages_airdrag)] + [TestCase(consolidated_multiple_stages)] + [TestCase(consolidated_one_stage)] + [TestCase(primary_vehicle_only)] + public void loadAirdragComponentAndSaveVehicleData(string fileName) + { + var vm = loadFile(consolidated_multiple_stages_airdrag); + + var vehicleVm = + vm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as + DeclarationInterimStageBusVehicleViewModel_v2_8; + + + var airdragLoadResult = vehicleVm.MultistageAirdragViewModel.LoadAirdragFile(GetFullPath(airdragLoadTestFile)); + Assert.IsTrue(airdragLoadResult, "Airdrag file not loaded"); + + + //TODO: Set mandatory fields + vehicleVm.Manufacturer = "TestManufacturer"; + vehicleVm.ManufacturerAddress = "ManufacturerADDRESS"; + vehicleVm.VIN = "1234567890"; + + + + var fileToSave = "stageInput.xml"; + + var mockDialogHelper = setMockDialogHelper(null, fileToSave: fileToSave); + + TestContext.Write("Saving file with loaded Airdrag Component ... "); + var multistageJobViewModel = vm.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; + multistageJobViewModel.SaveInputDataAsCommand.Execute(null); + + var savePath = mockDialogHelper.Object.SaveToXMLDialog(); + Assert.IsTrue(File.Exists(savePath)); + TestContext.WriteLine("Done!"); + + TestContext.WriteLine("Checking saved File ..."); + var inputData = (IDeclarationInputDataProvider)_kernel.Get<IXMLInputDataReader>().Create(savePath); + + Assert.NotNull(inputData.JobInputData.Vehicle.Components.AirdragInputData, "No Airdrag Component loaded"); + var airdragData = inputData.JobInputData.Vehicle.Components.AirdragInputData; + + Assert.IsTrue(vehicleVm.AirdragModifiedMultistage); + + + + + + + File.Delete(savePath); + + + + + } diff --git a/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs b/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs index d978425dfc1bc730c2a06bef75af7e3e60dad9e5..813dfab7665ad48c22220ae9073b5529c2af6cf3 100644 --- a/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs +++ b/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs @@ -64,7 +64,7 @@ namespace Vecto3GUI2020Test.ViewModelTests Assert.IsNull(vehicleVM.AirdragModifiedMultistage); var airdragViewModel = vehicleVM.MultistageAirdragViewModel as MultistageAirdragViewModel; - Assert.IsTrue(airdragViewModel.LoadAirdragFile(GetFullPath(airdragComponent))); + Assert.IsTrue(airdragViewModel.LoadAirdragFile(GetFullPath(airdragLoadTestFile))); Assert.IsNull(vehicleVM.AirdragModifiedMultistage); Assert.IsFalse(vehicleVM.AirdragModifiedMultistageMandatory); @@ -152,7 +152,7 @@ namespace Vecto3GUI2020Test.ViewModelTests //Load airdrag file - var airdragLoaded = vehicleViewModel.MultistageAirdragViewModel.LoadAirdragFile(GetFullPath(airdragComponent)); + var airdragLoaded = vehicleViewModel.MultistageAirdragViewModel.LoadAirdragFile(GetFullPath(airdragLoadTestFile)); Assert.IsTrue(airdragLoaded, "Airdrag file was not loaded"); //Airdrag modified set to true if a component is loaded and the field is mandatory @@ -168,7 +168,7 @@ namespace Vecto3GUI2020Test.ViewModelTests //AirdragComponent is removed when airdragmodified is set to false; //Load airdrag file - airdragLoaded = vehicleViewModel.MultistageAirdragViewModel.LoadAirdragFile(GetFullPath(airdragComponent)); + airdragLoaded = vehicleViewModel.MultistageAirdragViewModel.LoadAirdragFile(GetFullPath(airdragLoadTestFile)); Assert.IsTrue(airdragLoaded, "Airdrag file was not loaded"); vehicleViewModel.AirdragModifiedMultistage = false; diff --git a/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs b/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs index 9955c70292cc94d394bcb0ec0e0f211c24884aa9..de58ab608a5806d62e56487de319ef3759104b57 100644 --- a/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs +++ b/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs @@ -33,7 +33,7 @@ namespace Vecto3GUI2020Test protected const string stageInputFullSample = "vecto_vehicle-stage_input_full-sample.xml"; - protected const string airdragComponent = "AidragComponent.xml"; + protected const string airdragLoadTestFile = "AirdragLoadTestFile.xml"; //protected IXMLInputDataReader xmlInputReader; protected IKernel _kernel;