diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs index 0ca13d0fff5b32f79cae6c63768a00c9e86a4525..b739a88820f6b767a920fb4a605dd12d899a2bde 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs @@ -352,6 +352,8 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation RegisteredClass = vehicleInputData.RegisteredClass; NumberPassengerSeatsUpperDeck = vehicleInputData.NumberPassengerSeatsUpperDeck; NumberPassengerSeatsLowerDeck = vehicleInputData.NumberPassengerSeatsLowerDeck; + NumberPassengersStandingLowerDeck = vehicleInputData.NumberPassengersStandingLowerDeck; + NumberPassengersStandingUpperDeck = vehicleInputData.NumberPassengersStandingUpperDeck; VehicleCode = vehicleInputData.VehicleCode; LowEntry = vehicleInputData.LowEntry; MeasurementsGroupEditingEnabled = diff --git a/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj b/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj index b0a3b15265007fa3ea97c48a0daa1dbd2428712b..25b0d573f0db43b3263d3506470237c0ac25aa0a 100644 --- a/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj +++ b/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj @@ -92,4 +92,8 @@ <ProjectReference Include="..\VectoCore\VectoCore\VectoCore.csproj" /> </ItemGroup> + <ItemGroup> + <Reference Include="PresentationFramework" /> + </ItemGroup> + </Project> diff --git a/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs b/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs index f692c9fe481669be229d50e98aaece654487c727..99e19a515b7d1ce6458e4da226af17d35c521d51 100644 --- a/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs +++ b/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs @@ -37,13 +37,15 @@ namespace Vecto3GUI2020Test [Test] public void loadPrimaryAndSaveVehicleData() { + //Load Primary Vehicle VIF var newMultiStageJob = loadFile(primary_vehicle_only); var vehicle = newMultiStageJob.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as DeclarationInterimStageBusVehicleViewModel_v2_8; Assert.NotNull(vehicle); vehicle.Manufacturer = "test1"; vehicle.ManufacturerAddress = "testAddress2"; vehicle.VIN = "VIN123456789"; - //Remove + + var manufacturingStage = newMultiStageJob.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; @@ -53,7 +55,9 @@ namespace Vecto3GUI2020Test var fileName = primary_vehicle_only.Replace(".xml", "") + "_output.xml"; deleteFile(fileName); - _kernel.Rebind<IDialogHelper>().ToConstant(getMockDialogHelper(fileToSave:fileName).Object); + setMockDialogHelper(null, fileToSave: fileName); + + manufacturingStage.SaveInputDataAsCommand.Execute(null); Assert.True(checkFileNameExists(fileName)); } @@ -84,7 +88,7 @@ namespace Vecto3GUI2020Test var saveFileName = fileName.Replace(".xml", "") + "_output.xml"; deleteFile(saveFileName); - _kernel.Rebind<IDialogHelper>().ToConstant(getMockDialogHelper(fileToSave: saveFileName).Object); + _kernel.Rebind<IDialogHelper>().ToConstant(setMockDialogHelper(fileToSave: saveFileName).Object); manstage.SaveInputDataAsCommand.Execute(null); Assert.False(checkFileNameExists(saveFileName)); @@ -104,7 +108,7 @@ namespace Vecto3GUI2020Test Assert.True(vehicle.AirdragModifiedMultistageEditingEnabled); - var mockDialog = getMockDialogHelper(consolidated_multiple_stages_hev); + var mockDialog = setMockDialogHelper(consolidated_multiple_stages_hev); newMultistageJobViewModel.AddVifFile.Execute(null); Assert.AreEqual(mockDialog.Object.OpenXMLFileDialog(null), newMultistageJobViewModel.VifPath); vehicle = newMultistageJobViewModel.MultiStageJobViewModel.VehicleInputData as DeclarationInterimStageBusVehicleViewModel_v2_8; @@ -129,7 +133,7 @@ namespace Vecto3GUI2020Test var fileToSave = "loadAndSaveFullInputDataTest.xml"; - var mockDialogHelper = getMockDialogHelper(stageInputFullSample, fileToSave); + var mockDialogHelper = setMockDialogHelper(stageInputFullSample, fileToSave); multiStageJobViewModel.LoadVehicleDataCommand.Execute(null); var manufacturingStageViewModel = @@ -232,17 +236,20 @@ namespace Vecto3GUI2020Test [Test] public void loadVehicleDataTest() { - string multiplestages = ""; - multiplestages = Path.GetFullPath(DirPath + "vecto_multistage_consolidated_multiple_stages.xml"); - var dialogMockConsolidatedMultipleStage = new Mock<IDialogHelper>(); - dialogMockConsolidatedMultipleStage.Setup(dialogHelper => dialogHelper.OpenXMLFileDialog(It.IsAny<string>())).Returns(multiplestages); - dialogMockConsolidatedMultipleStage.Setup(dialogHelper => dialogHelper.OpenXMLFileDialog()).Returns(multiplestages); - _kernel.Rebind<IDialogHelper>().ToConstant(dialogMockConsolidatedMultipleStage.Object); + + TestContext.WriteLine($"Loading {consolidated_multiple_stages}"); + var newMultistageJobViewModel = loadFile(consolidated_multiple_stages); - var newMultistageJobViewModel = _kernel.Get<NewMultiStageJobViewModel>(); - newMultistageJobViewModel.AddVifFile.Execute(null); + //var dialogMockConsolidatedMultipleStage = new Mock<IDialogHelper>(); + //dialogMockConsolidatedMultipleStage.Setup(dialogHelper => dialogHelper.OpenXMLFileDialog(It.IsAny<string>())).Returns(multiplestages); + //dialogMockConsolidatedMultipleStage.Setup(dialogHelper => dialogHelper.OpenXMLFileDialog()).Returns(multiplestages); + //_kernel.Rebind<IDialogHelper>().ToConstant(dialogMockConsolidatedMultipleStage.Object); + + + //var newMultistageJobViewModel = _kernel.Get<NewMultiStageJobViewModel>(); + //newMultistageJobViewModel.AddVifFile.Execute(null); Assert.NotNull(newMultistageJobViewModel.MultiStageJobViewModel); var manstageVehicleViewModel = newMultistageJobViewModel.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as IMultistageVehicleViewModel; @@ -258,60 +265,68 @@ namespace Vecto3GUI2020Test var manStageViewModel = multiStageViewModel.ManufacturingStageViewModel as ManufacturingStageViewModel_v0_1; - var vehicleInputData = Path.GetFullPath(DirPath + "vecto_vehicle-stage_input_full-sample.xml"); - Assert.IsTrue(File.Exists(vehicleInputData)); + var vehicleInputData = "vecto_vehicle-stage_input_full-sample.xml"; + var mockDialogHelper = setMockDialogHelper(fileToLoad: vehicleInputData, fileToSave: null); + var vehicleInputDataFilePath = mockDialogHelper.Object.OpenXMLFileDialog(); + TestContext.WriteLine($"Loading {vehicleInputDataFilePath}"); + Assert.IsTrue(File.Exists(vehicleInputDataFilePath)); + + - var vehicleInputDataFiledialogMock = new Mock<IDialogHelper>(); - vehicleInputDataFiledialogMock.Setup(dialogHelper => dialogHelper.OpenXMLFileDialog(It.IsAny<string>())).Returns(vehicleInputData); - vehicleInputDataFiledialogMock.Setup(dialogHelper => dialogHelper.OpenXMLFileDialog()).Returns(vehicleInputData); - _kernel.Rebind<IDialogHelper>().ToConstant(vehicleInputDataFiledialogMock.Object); + //var vehicleInputDataFiledialogMock = new Mock<IDialogHelper>(); + //vehicleInputDataFiledialogMock.Setup(dialogHelper => dialogHelper.OpenXMLFileDialog(It.IsAny<string>())).Returns(vehicleInputData); + //vehicleInputDataFiledialogMock.Setup(dialogHelper => dialogHelper.OpenXMLFileDialog()).Returns(vehicleInputData); + //_kernel.Rebind<IDialogHelper>().ToConstant(vehicleInputDataFiledialogMock.Object); multiStageViewModel.LoadVehicleDataCommand.Execute(null); - var vehicle = manStageViewModel.VehicleViewModel as DeclarationInterimStageBusVehicleViewModel_v2_8; - Assert.NotNull(vehicle); - - Assert.AreEqual("VEH-1234567890", vehicle.Identifier); - Assert.AreEqual("Some Manufacturer", vehicle.Manufacturer); - Assert.AreEqual("Some Manufacturer Address", vehicle.ManufacturerAddress); - Assert.AreEqual("VEH-1234567890", vehicle.VIN); - Assert.AreEqual(DateTime.Today, vehicle.Date); - Assert.AreEqual("Sample Bus Model", vehicle.Model); - Assert.AreEqual(LegislativeClass.M3, vehicle.LegislativeClass); - Assert.AreEqual(500, vehicle.CurbMassChassis.Value());//CorrectedActualMass - Assert.AreEqual(3500, vehicle.GrossVehicleMassRating.Value());//TechnicalPermissibleMaximumLadenMass - //Assert.AreEqual(false, vehicle.AirdragModifiedMultistage); - Assert.AreEqual(TankSystem.Compressed, vehicle.TankSystem);//NgTankSystem - Assert.AreEqual(RegistrationClass.II_III, vehicle.RegisteredClass);//ClassBus - Assert.AreEqual(0, vehicle.NumberPassengerSeatsLowerDeck); - Assert.AreEqual(10, vehicle.NumberPassengerSeatsUpperDeck); - Assert.AreEqual(VehicleCode.CB, vehicle.VehicleCode); - Assert.AreEqual(false, vehicle.LowEntry); - Assert.AreEqual(2.5, vehicle.Height.Value());//HeightIntegratedBody - Assert.AreEqual(9.5, vehicle.Length.Value()); - Assert.AreEqual(2.5, vehicle.Width.Value()); - - Assert.AreEqual(2500, (vehicle.ParameterViewModels[nameof(vehicle.HeightInMm)].CurrentContent as ConvertedSI).Value); - Assert.AreEqual(9500, (vehicle.ParameterViewModels[nameof(vehicle.LengthInMm)].CurrentContent as ConvertedSI).Value); - Assert.AreEqual(2500, (vehicle.ParameterViewModels[nameof(vehicle.WidthInMm)].CurrentContent as ConvertedSI).Value); + var vehicleViewModel = manStageViewModel.VehicleViewModel as DeclarationInterimStageBusVehicleViewModel_v2_8; + Assert.NotNull(vehicleViewModel); + //Assert.IsFalse(getMockDialogHelper().Verify); + + Assert.AreEqual("VEH-1234567890", vehicleViewModel.Identifier); + Assert.AreEqual("Some Manufacturer", vehicleViewModel.Manufacturer); + Assert.AreEqual("Some Manufacturer Address", vehicleViewModel.ManufacturerAddress); + Assert.AreEqual("VEH-1234567890", vehicleViewModel.VIN); + Assert.AreEqual(DateTime.Today, vehicleViewModel.Date); + Assert.AreEqual("Sample Bus Model", vehicleViewModel.Model); + Assert.AreEqual(LegislativeClass.M3, vehicleViewModel.LegislativeClass); + Assert.AreEqual(500, vehicleViewModel.CurbMassChassis.Value());//CorrectedActualMass + Assert.AreEqual(3500, vehicleViewModel.GrossVehicleMassRating.Value());//TechnicalPermissibleMaximumLadenMass + Assert.AreEqual(false, vehicleViewModel.AirdragModifiedMultistage); + Assert.AreEqual(TankSystem.Compressed, vehicleViewModel.TankSystem);//NgTankSystem + Assert.AreEqual(RegistrationClass.II_III, vehicleViewModel.RegisteredClass);//ClassBus + Assert.AreEqual(1, vehicleViewModel.NumberPassengerSeatsLowerDeck); + Assert.AreEqual(10, vehicleViewModel.NumberPassengersStandingLowerDeck); + Assert.AreEqual(11, vehicleViewModel.NumberPassengerSeatsUpperDeck); + Assert.AreEqual(2, vehicleViewModel.NumberPassengersStandingUpperDeck); + Assert.AreEqual(VehicleCode.CB, vehicleViewModel.VehicleCode); + Assert.AreEqual(false, vehicleViewModel.LowEntry); + Assert.AreEqual(2.5, vehicleViewModel.Height.Value());//HeightIntegratedBody + Assert.AreEqual(9.5, vehicleViewModel.Length.Value()); + Assert.AreEqual(2.5, vehicleViewModel.Width.Value()); + + Assert.AreEqual(2500, (vehicleViewModel.ParameterViewModels[nameof(vehicleViewModel.HeightInMm)].CurrentContent as ConvertedSI).Value); + Assert.AreEqual(9500, (vehicleViewModel.ParameterViewModels[nameof(vehicleViewModel.LengthInMm)].CurrentContent as ConvertedSI).Value); + Assert.AreEqual(2500, (vehicleViewModel.ParameterViewModels[nameof(vehicleViewModel.WidthInMm)].CurrentContent as ConvertedSI).Value); - Assert.AreEqual(2, vehicle.EntranceHeight.Value()); - Assert.AreEqual(ConsumerTechnology.Electrically, vehicle.DoorDriveTechnology); - Assert.AreEqual(VehicleDeclarationType.interim, vehicle.VehicleDeclarationType); + Assert.AreEqual(2, vehicleViewModel.EntranceHeight.Value()); + Assert.AreEqual(ConsumerTechnology.Electrically, vehicleViewModel.DoorDriveTechnology); + Assert.AreEqual(VehicleDeclarationType.interim, vehicleViewModel.VehicleDeclarationType); - Assert.AreEqual(newMultistageJobViewModel.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle.DoorDriveTechnology, vehicle.DoorDriveTechnology); + Assert.AreEqual(newMultistageJobViewModel.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle.DoorDriveTechnology, vehicleViewModel.DoorDriveTechnology); - var airdrag = vehicle.MultistageAirdragViewModel; + var airdrag = vehicleViewModel.MultistageAirdragViewModel; Assert.NotNull(airdrag.AirDragViewModel.XMLSource); - TestADASInput(vehicle); - TestComponents(vehicle.Components); - TestAirdragComponent(vehicle.Components.AirdragInputData); - TestAuxiliariesComponent(vehicle.BusAuxiliaries); + TestADASInput(vehicleViewModel); + TestComponents(vehicleViewModel.Components); + TestAirdragComponent(vehicleViewModel.Components.AirdragInputData); + TestAuxiliariesComponent(vehicleViewModel.BusAuxiliaries); @@ -362,6 +377,16 @@ namespace Vecto3GUI2020Test Assert.AreEqual(BusHVACSystemConfiguration.Configuration0, hvacAux.SystemConfiguration); Assert.AreEqual(HeatPumpType.none, hvacAux.HeatPumpTypeDriverCompartment); Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpModeDriverCompartment); + + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvacAux.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvacAux.HeatPumpPassengerCompartments[0].Item2); + + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvacAux.HeatPumpPassengerCompartments[1].Item1); + Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpPassengerCompartments[1].Item2); + + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvacAux.HeatPumpPassengerCompartments[2].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvacAux.HeatPumpPassengerCompartments[2].Item2); + Assert.AreEqual(50, hvacAux.AuxHeaterPower.Value()); Assert.AreEqual(false, hvacAux.DoubleGlazing); Assert.AreEqual(true, hvacAux.AdjustableAuxiliaryHeater); diff --git a/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs b/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs index efec893136092dae2dd2ce7052104a413b907460..51fa2cdc749365299dcfb1a39575b18a815a70e1 100644 --- a/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs +++ b/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs @@ -231,7 +231,7 @@ namespace Vecto3GUI2020Test.ViewModelTests var vehicleVM = vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as DeclarationInterimStageBusVehicleViewModel_v2_8; - getMockDialogHelper(stageInputFullSample); + setMockDialogHelper(stageInputFullSample); var vmConc = vm.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; vmConc.LoadVehicleDataCommand.Execute(null); Assert.IsFalse(vmConc.ManufacturingStageViewModel.VehicleViewModel.HasErrors); diff --git a/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs b/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs index 4265e85f6b46e1bc04f71a4911418301820eff87..9955c70292cc94d394bcb0ec0e0f211c24884aa9 100644 --- a/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs +++ b/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs @@ -1,6 +1,7 @@ using System; using System.Diagnostics; using System.IO; +using System.Windows; using Moq; using Ninject; using NUnit.Framework; @@ -92,7 +93,7 @@ namespace Vecto3GUI2020Test public NewMultiStageJobViewModel loadFile(string fileName) { - var mockDialogHelper = getMockDialogHelper(fileName); + var mockDialogHelper = setMockDialogHelper(fileName); var newMultistageJobViewModel = _kernel.Get<NewMultiStageJobViewModel>(); newMultistageJobViewModel.AddVifFile.Execute(null); @@ -118,10 +119,18 @@ namespace Vecto3GUI2020Test return newMultistageJobViewModel; } - protected Mock<IDialogHelper> getMockDialogHelper(string fileToLoad = null, string fileToSave = null) + protected Mock<IDialogHelper> setMockDialogHelper(string fileToLoad = null, string fileToSave = null) { if (_mockDialogHelper == null) { _mockDialogHelper = new Mock<IDialogHelper>(); + _mockDialogHelper.Setup(dialogHelper => dialogHelper.ShowMessageBox(It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<MessageBoxButton>(), + It.IsAny<MessageBoxImage>())).Returns(MessageBoxResult.OK) + .Callback<string, string, MessageBoxButton, MessageBoxImage>(( + (message, caption, button, image) => { + TestContext.WriteLine($"{caption}\n {message}"); + })); } if (fileToLoad != null) { var filePath = Path.GetFullPath(DirPath + fileToLoad); @@ -130,7 +139,7 @@ namespace Vecto3GUI2020Test _mockDialogHelper.Setup(dialogHelper => dialogHelper.OpenXMLFileDialog(It.IsAny<string>())).Returns(filePath); _mockDialogHelper.Setup(dialogHelper => dialogHelper.OpenXMLFileDialog()).Returns(filePath); - Debug.WriteLine($"Created MOCKDIALOGHELPER, returns {filePath} for OpenXMLFileDialog()"); + TestContext.WriteLine($"Created MOCKDIALOGHELPER, returns {filePath} for OpenXMLFileDialog()"); } if (fileToSave != null) { @@ -140,13 +149,18 @@ namespace Vecto3GUI2020Test _mockDialogHelper.Setup(dialogHelper => dialogHelper.SaveToXMLDialog(null)).Returns(filePath); - Debug.WriteLine($"Created MOCKDIALOGHELPER, returns {filePath} for SaveToXMLFileDialog()"); + TestContext.WriteLine($"Created MOCKDIALOGHELPER, returns {filePath} for SaveToXMLFileDialog()"); } return _mockDialogHelper; } + protected Mock<IDialogHelper> getMockDialogHelper() + { + return _mockDialogHelper; + } + protected string GetFullPath(string fileName) { var path = Path.GetFullPath(DirPath + fileName);