diff --git a/VECTO3GUI2020/Behaviours/HideOnMainWindowBehavior.cs b/VECTO3GUI2020/Behaviours/HideOnMainWindowBehavior.cs deleted file mode 100644 index 5ecc5f75146f64cad2b80dd0469888ffd1178985..0000000000000000000000000000000000000000 --- a/VECTO3GUI2020/Behaviours/HideOnMainWindowBehavior.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System.Windows; -using Microsoft.Xaml.Behaviors; - -namespace VECTO3GUI2020.Behaviours -{ - public class HideOnMainWindowBehavior : Behavior<FrameworkElement> - { - #region Overrides of Behavior - - private Visibility savedState; - protected override void OnAttached() - { - - base.OnAttached(); - var window = Window.GetWindow(this.AssociatedObject); - if (window == Application.Current.MainWindow) { - savedState = AssociatedObject.Visibility; - this.AssociatedObject.Visibility = Visibility.Hidden; - } - } - - protected override void OnDetaching() - { - if (savedState != null) { - this.AssociatedObject.Visibility = savedState; - } - base.OnDetaching(); - } - - #endregion - } -} \ No newline at end of file diff --git a/VECTO3GUI2020/Behaviours/MinSizeBehavior.cs b/VECTO3GUI2020/Behaviours/MinSizeBehavior.cs deleted file mode 100644 index 1a2bb8675f841e550ebffb5d4fb427c37c03de46..0000000000000000000000000000000000000000 --- a/VECTO3GUI2020/Behaviours/MinSizeBehavior.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Media; -using Microsoft.Xaml.Behaviors; - -namespace VECTO3GUI2020.Behaviours -{ - public class MinSizeBehavior : Behavior<Window> - { - #region Overrides of Behavior - - private double _initialMinWidth; - private double _initialMinHeight; - - protected override void OnAttached() - { - this.AssociatedObject.Activated += OnWindowActivated; - _initialMinHeight = this.AssociatedObject.MinHeight; - _initialMinWidth = this.AssociatedObject.MinWidth; - base.OnAttached(); - - } - - private void OnWindowActivated(object sender, EventArgs e) - { - for(var i = 0; i < VisualTreeHelper.GetChildrenCount((Window)sender); i++) - { - var child = VisualTreeHelper.GetChild((Window)sender, 0) as FrameworkElement; - if (child.MinHeight != 0 && this.AssociatedObject.MinHeight == 0) { - this.AssociatedObject.MinHeight = child.MinHeight; - } - if (child.MinWidth != 0 && this.AssociatedObject.MinWidth == 0) - { - this.AssociatedObject.MinWidth = child.MinWidth; - } - } - - - - } - - private void OnWindowInitialized(object sender, EventArgs e) - { - - - - - } - - protected override void OnDetaching() - { - - - this.AssociatedObject.Initialized -= OnWindowActivated; - - base.OnDetaching(); - - } - - #endregion - } -} \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/ExceptionExtension.cs b/VECTO3GUI2020/Helper/ExceptionExtension.cs new file mode 100644 index 0000000000000000000000000000000000000000..cf656d36044e294754d7dc7bfbb5ec6a2e5f30e9 --- /dev/null +++ b/VECTO3GUI2020/Helper/ExceptionExtension.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Documents; + +namespace VECTO3GUI2020.Helper +{ + public static class ExceptionExtension + { + public static string GetInnerExceptionMessages(this Exception ex, string separator = "\n") + { + IList<string> errorStrings = new List<string>(); + + + do { + errorStrings.Add(ex.Message); + ex = ex.InnerException; + } while (ex != null); + + var errorString = String.Join(separator, errorStrings); + + + return errorString; + } + + + + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/FileHelper.cs b/VECTO3GUI2020/Helper/FileHelper.cs new file mode 100644 index 0000000000000000000000000000000000000000..47b2d021f2dde0555ef9853dda1b98ba16ac5e33 --- /dev/null +++ b/VECTO3GUI2020/Helper/FileHelper.cs @@ -0,0 +1,13 @@ +using System.IO; + +namespace VECTO3GUI2020.Helper +{ + public static class FileHelper + { + public static void CreateDirectory(string fileName) + { + Path.GetDirectoryName(fileName); + Directory.CreateDirectory(fileName); + } + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/Helper/VisualTreeHelperExtensions.cs b/VECTO3GUI2020/Helper/VisualTreeHelperExtensions.cs new file mode 100644 index 0000000000000000000000000000000000000000..d9d8b66e8c34d9e243eaf1045eebf39c2aab0e4d --- /dev/null +++ b/VECTO3GUI2020/Helper/VisualTreeHelperExtensions.cs @@ -0,0 +1,28 @@ +using System; +using System.Windows; +using System.Windows.Media; +using TUGraz.VectoCommon.Models; + +namespace VECTO3GUI2020.Helper +{ + public static class VisualTreeHelperExtensions + { + + public static T GetChild<T>(FrameworkElement rootElement) where T : FrameworkElement + { + T child = null; + for(var i = 0; i < VisualTreeHelper.GetChildrenCount(rootElement); i++) { + var childElement = VisualTreeHelper.GetChild(rootElement, i); + if (childElement.GetType() == typeof(T)) { + child = childElement as T; + return child; + } else { + return GetChild<T>(childElement as FrameworkElement); + } + } + + + return child; + } + } +} \ No newline at end of file diff --git a/VECTO3GUI2020/MainWindow.xaml b/VECTO3GUI2020/MainWindow.xaml index aca144dd8f4505e4eaae09bb33ea568d95e464cb..3ef1c31a2ba0872a85c89a2170b6b847bb3c7fa2 100644 --- a/VECTO3GUI2020/MainWindow.xaml +++ b/VECTO3GUI2020/MainWindow.xaml @@ -7,6 +7,9 @@ xmlns:Implementation="clr-namespace:VECTO3GUI2020.ViewModel.Implementation" d:DataContext="{d:DesignInstance Type=Implementation:MainWindowViewModel}" x:Class="VECTO3GUI2020.MainWindow" mc:Ignorable="d" Title="Vecto" Height="450" Width="820" + MinWidth="600" + MinHeight="400" + WindowStartupLocation="CenterScreen" AutomationProperties.Name="=" x:Name="MainView"> diff --git a/VECTO3GUI2020/Ninject/Vecto3GUI2020Module.cs b/VECTO3GUI2020/Ninject/Vecto3GUI2020Module.cs index e2c1ddb92fb07a5c8c39669d816be29de763048c..cfbe3a2fc2872d464985a0648cca0122af454cfc 100644 --- a/VECTO3GUI2020/Ninject/Vecto3GUI2020Module.cs +++ b/VECTO3GUI2020/Ninject/Vecto3GUI2020Module.cs @@ -1,4 +1,5 @@ -using Ninject.Modules; +using System.Windows; +using Ninject.Modules; using VECTO3GUI2020.Helper; using VECTO3GUI2020.Model.Implementation; using VECTO3GUI2020.Model.Interfaces; @@ -24,6 +25,7 @@ namespace VECTO3GUI2020.Ninject Bind<IDialogHelper>().To<DialogHelper>().InSingletonScope(); Bind<IWindowHelper>().To<WindowHelper>(); Bind<AboutViewModel>().ToSelf().InSingletonScope(); + } #endregion diff --git a/VECTO3GUI2020/VECTO3GUI2020.csproj b/VECTO3GUI2020/VECTO3GUI2020.csproj index b0f12108beeb41471e2fb76d3b4540e9550bae8f..f02e5ebaa9b82207055a89d7eac1b8d07c5aaca2 100644 --- a/VECTO3GUI2020/VECTO3GUI2020.csproj +++ b/VECTO3GUI2020/VECTO3GUI2020.csproj @@ -155,8 +155,6 @@ <SubType>Designer</SubType> </ApplicationDefinition> <Compile Include="Behaviours\AutoScrollDataGridBehaviour.cs" /> - <Compile Include="Behaviours\HideOnMainWindowBehavior.cs" /> - <Compile Include="Behaviours\MinSizeBehavior.cs" /> <Compile Include="Helper\ConvertedSIDummyCreator.cs" /> <Compile Include="Helper\Converter\AlwaysVisibleConverter.cs" /> <Compile Include="Helper\Converter\BoolToVisibilityConverter.cs" /> @@ -174,11 +172,14 @@ <Compile Include="Helper\Converter\VehicleCategoryToStringConverter.cs" /> <Compile Include="Helper\Converter\XToBoolConverter.cs" /> <Compile Include="Helper\DoubleValidation.cs" /> + <Compile Include="Helper\ExceptionExtension.cs" /> <Compile Include="Helper\Exceptions.cs" /> <Compile Include="Helper\EnumHelper.cs" /> + <Compile Include="Helper\FileHelper.cs" /> <Compile Include="Helper\IndexedStorage.cs" /> <Compile Include="Helper\IWindowHelper.cs" /> <Compile Include="Helper\DialogHelper.cs" /> + <Compile Include="Helper\VisualTreeHelperExtensions.cs" /> <Compile Include="Helper\TemplateSelector\MultistageParameterDataTemplateSelector.cs" /> <Compile Include="Helper\MultistageParameterViewModel.cs" /> <Compile Include="Helper\NameOfMarkUpExtension.cs" /> diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs index 2ba4e70116339f4356d6aaa08e5830e6b9797317..e95d495646b5e9312cb6c573470d4e0194c64f2c 100644 --- a/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs +++ b/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs @@ -101,7 +101,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation - public JobListViewModel() + private JobListViewModel() { BindingOperations.EnableCollectionSynchronization(Jobs, _jobsLock); } @@ -111,7 +111,8 @@ namespace VECTO3GUI2020.ViewModel.Implementation IXMLInputDataReader inputDataReader, IDialogHelper dialogHelper, IWindowHelper windowHelper, - IMultiStageViewModelFactory multiStageViewModelFactory, IOutputViewModel outputViewModel) : this() + IMultiStageViewModelFactory multiStageViewModelFactory, + IOutputViewModel outputViewModel) : this() { _documentViewModelFactory = documentViewModelFactory; _dialogHelper = dialogHelper; @@ -136,16 +137,27 @@ namespace VECTO3GUI2020.ViewModel.Implementation NLog.Config.SimpleConfigurator.ConfigureForTargetLogging(target); - System.Windows.Application.Current.Exit += new ExitEventHandler(this.OnApplicationExit); + if(System.Windows.Application.Current != null){ + System.Windows.Application.Current.Exit += new ExitEventHandler(this.OnApplicationExit); + LoadFiles(); + } + } + + + #region Store and Restore JobList + private void LoadFiles() + { var filesToRead = ReadFileNamesFromFile(); - if (filesToRead != null) { - foreach (var fileName in filesToRead) { + if (filesToRead != null) + { + foreach (var fileName in filesToRead) + { Task.Run(() => AddJobAsync(fileName)); } } } - #region Store and Restore JobList + private void OnApplicationExit(object sender, EventArgs e) { SaveFileNamesToFile(); diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs index bc70a46ddb70c2e2b0e835f783a6809d8ead4a43..b68c0416cca936b615c719b26865615d6be4a4a3 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs @@ -122,7 +122,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation var auxiliariesErrorInfo = vehicleViewModel.MultistageAuxiliariesViewModel as IDataErrorInfo; - if (!auxiliariesErrorInfo.Error.IsNullOrEmpty()) { + if (auxiliariesErrorInfo != null && !auxiliariesErrorInfo.Error.IsNullOrEmpty()) { errorMessage += "Auxiliaries\n"; errorMessage += auxiliariesErrorInfo.Error.Replace(",", "\n"); } @@ -149,10 +149,14 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation }, () => true); } } - - public void SaveVif(string outputFile) + /// <summary> + /// Creates a new VIF file + /// </summary> + /// <param name="outputFile"></param> + /// <returns>Name of the created File</returns> + public string SaveVif(string outputFile) { - SaveVif(vifData:this, outputFile:outputFile, dialogHelper:_dialogHelper.Value); + return SaveVif(vifData:this, outputFile:outputFile, dialogHelper:_dialogHelper.Value); } public void SaveVif(IMultistageVIFInputData vifData, FileOutputVIFWriter writer, IDialogHelper dialogHelper = null) @@ -160,12 +164,21 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation SaveVif(vifData, null, writer, dialogHelper); } - private void SaveVif(IMultistageVIFInputData vifData, string outputFile, + + /// <summary> + /// Creates a new VIF file + /// </summary> + /// <param name="vifData"></param> + /// <param name="outputFile"></param> + /// <param name="writer"></param> + /// <param name="dialogHelper"></param> + /// <returns>Name of the created file</returns> + + private string SaveVif(IMultistageVIFInputData vifData, string outputFile, FileOutputVIFWriter writer = null, IDialogHelper dialogHelper = null) { try { - - + FileHelper.CreateDirectory(outputFile); if (writer == null) { var numberOfManufacturingStages = vifData.MultistageJobInputData.JobInputData.ManufacturingStages?.Count ?? 0; @@ -194,22 +207,21 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation dialogHelper?.ShowMessageBox($"Error writing file {validator.ValidationError}", "Error", MessageBoxButton.OK, MessageBoxImage.Error); Debug.WriteLine("Invalid Outputfile"); - return; + return null; } else { dialogHelper?.ShowMessageBox($"Written to {writer.XMLMultistageReportFileName}", "Info", MessageBoxButton.OK, MessageBoxImage.Information); _jobListViewModel.AddJobAsync(writer.XMLMultistageReportFileName); Debug.WriteLine($"Written to {writer.XMLMultistageReportFileName}"); - + return writer.XMLMultistageReportFileName; } } }catch (Exception e) { - dialogHelper?.ShowMessageBox($"{e.Message}", "Error writing VIF", MessageBoxButton.OK, + dialogHelper?.ShowMessageBox($"{e.GetInnerExceptionMessages()}", "Error writing VIF", MessageBoxButton.OK, MessageBoxImage.Error); - + return null; } - } private ICommand _saveInputDataCommand; diff --git a/VECTO3GUI2020/Views/SettingsView.xaml b/VECTO3GUI2020/Views/SettingsView.xaml index b4ce56aa8ca01b7752ef7699e41299252f240332..6ef78b6a93d8de01b64309520d4547ebcd419a1f 100644 --- a/VECTO3GUI2020/Views/SettingsView.xaml +++ b/VECTO3GUI2020/Views/SettingsView.xaml @@ -99,9 +99,6 @@ <!--</Grid>--> <DockPanel DockPanel.Dock="Bottom" LastChildFill="False"> - <i:Interaction.Behaviors> - <behaviour:HideOnMainWindowBehavior></behaviour:HideOnMainWindowBehavior> - </i:Interaction.Behaviors> <Button DockPanel.Dock="Right" Width="100" Command="{Binding CloseWindowCommand}" diff --git a/Vecto3GUI2020Test/TestHelper.cs b/Vecto3GUI2020Test/TestHelper.cs new file mode 100644 index 0000000000000000000000000000000000000000..70e3915442c982c442327adb86ce700cd8504ef0 --- /dev/null +++ b/Vecto3GUI2020Test/TestHelper.cs @@ -0,0 +1,28 @@ +using System.CodeDom; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML; + +namespace Vecto3GUI2020Test +{ + public class TestHelper + { + private IXMLInputDataReader _inputDataReader; + + public TestHelper(IXMLInputDataReader inputDataReader) + { + _inputDataReader = inputDataReader; + } + + + + + public IInputDataProvider GetInputDataProvider(string fileName) + { + return _inputDataReader.Create(fileName); + } + + + + + } +} \ No newline at end of file diff --git a/Vecto3GUI2020Test/UI/UITests.cs b/Vecto3GUI2020Test/UI/UITests.cs index 969b9c5a054b5ede41a07d6416946dee45b1bfdd..436e722c67439205a97705b8cd1c6929ff5c1274 100644 --- a/Vecto3GUI2020Test/UI/UITests.cs +++ b/Vecto3GUI2020Test/UI/UITests.cs @@ -16,7 +16,9 @@ namespace Vecto3GUI2020Test {/// <summary> /// The Application under Test has to run on a Windows 10 Machine on a Desktop called "VE /// </summary> - [TestFixture] +/// + [Ignore("GUI tests are not working that good")] + [TestFixture] public class UITests : VECTO3GUI2020Session { [SetUp] diff --git a/Vecto3GUI2020Test/ViewModelTests/AirdragTests.cs b/Vecto3GUI2020Test/ViewModelTests/AirdragTests.cs index 2aadd6117d635ea7a42f50356528eb49a07e4182..4fe432a6ceca0defe70130d1310950a96a03ae40 100644 --- a/Vecto3GUI2020Test/ViewModelTests/AirdragTests.cs +++ b/Vecto3GUI2020Test/ViewModelTests/AirdragTests.cs @@ -17,31 +17,31 @@ namespace Vecto3GUI2020Test.ViewModelTests #region Airdrag [Test] - public void airdragModifiedInPreviousStages() + public void AirdragModifiedInPreviousStages() { var vm = loadFile(consolidated_multiple_stages_airdrag); - var vehicleVM = vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as + var vehicleVm = vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as DeclarationInterimStageBusVehicleViewModel_v2_8; - Assert.IsTrue(vehicleVM.AirdragModifiedMultistageEditingEnabled); + Assert.IsTrue(vehicleVm.AirdragModifiedMultistageEditingEnabled); //try to change to false - vehicleVM.AirdragModifiedMultistage = false; //should not change the value - Assert.IsTrue(vehicleVM.AirdragModifiedMultistageEditingEnabled); + vehicleVm.AirdragModifiedMultistage = false; //should not change the value + Assert.IsTrue(vehicleVm.AirdragModifiedMultistageEditingEnabled); } [Test] - public void airdragNotModifiedInPreviousStages() + public void AirdragNotModifiedInPreviousStages() { var vm = loadFile(consolidated_multiple_stages); - var vehicleVM = + var vehicleVm = vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as DeclarationInterimStageBusVehicleViewModel_v2_8; - Assert.IsFalse(vehicleVM.AirdragModifiedMultistageEditingEnabled); + Assert.IsFalse(vehicleVm.AirdragModifiedMultistageEditingEnabled); } /// <summary> @@ -50,32 +50,32 @@ namespace Vecto3GUI2020Test.ViewModelTests /// => 'AirdragModifiedMultistage' required in all consecutive stages /// </summary> [Test] - public void airdragComponentLoadedFirstTime() + public void AirdragComponentLoadedFirstTime() { ///Load VIF without airdrag var vm = loadFile(primary_vehicle_only); - var vehicleVM = + var vehicleVm = vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as DeclarationInterimStageBusVehicleViewModel_v2_8; - Assert.IsNull(vehicleVM.AirdragModifiedMultistage); + Assert.IsNull(vehicleVm.AirdragModifiedMultistage); - var airdragViewModel = vehicleVM.MultistageAirdragViewModel as MultistageAirdragViewModel; + var airdragViewModel = vehicleVm.MultistageAirdragViewModel as MultistageAirdragViewModel; Assert.IsTrue(airdragViewModel.LoadAirdragFile(GetFullPath(airdragLoadTestFile))); - Assert.IsNull(vehicleVM.AirdragModifiedMultistage); - Assert.IsFalse(vehicleVM.AirdragModifiedMultistageMandatory); + Assert.IsNull(vehicleVm.AirdragModifiedMultistage); + Assert.IsFalse(vehicleVm.AirdragModifiedMultistageMandatory); - vehicleVM.AirdragModifiedMultistageEditingEnabled = true; - Assert.IsFalse(vehicleVM.AirdragModifiedMultistageEditingEnabled); + vehicleVm.AirdragModifiedMultistageEditingEnabled = true; + Assert.IsFalse(vehicleVm.AirdragModifiedMultistageEditingEnabled); - Assert.IsNull(vehicleVM.AirdragModifiedMultistage); + Assert.IsNull(vehicleVm.AirdragModifiedMultistage); //Set Mandatory Fields - vehicleVM.Manufacturer = "testManufacturer"; - vehicleVM.ManufacturerAddress = "Address"; - vehicleVM.VIN = "123456789"; + vehicleVm.Manufacturer = "testManufacturer"; + vehicleVm.ManufacturerAddress = "Address"; + vehicleVm.VIN = "123456789"; //Save as new VIF var multistageJobViewModel = vm.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; @@ -84,41 +84,41 @@ namespace Vecto3GUI2020Test.ViewModelTests var resultFile = $"{outputName}.VIF_Report_2.xml"; Assert.IsTrue(checkFileNameExists(resultFile)); - var secondstageVM = loadFile(resultFile); - Assert.IsNotNull(secondstageVM); - var secondStageVehicleVM = - (secondstageVM.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel) as + var secondstageVm = loadFile(resultFile); + Assert.IsNotNull(secondstageVm); + var secondStageVehicleVm = + (secondstageVm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel) as DeclarationInterimStageBusVehicleViewModel_v2_8; - Assert.IsTrue(secondStageVehicleVM.AirdragModifiedMultistageEditingEnabled); - Assert.IsTrue(secondStageVehicleVM.AirdragModifiedMultistageMandatory); - Assert.IsNull(secondStageVehicleVM.ConsolidatedVehicleData.AirdragModifiedMultistage); + Assert.IsTrue(secondStageVehicleVm.AirdragModifiedMultistageEditingEnabled); + Assert.IsTrue(secondStageVehicleVm.AirdragModifiedMultistageMandatory); + Assert.IsNull(secondStageVehicleVm.ConsolidatedVehicleData.AirdragModifiedMultistage); //try to disable AirdragModified - secondStageVehicleVM.AirdragModifiedMultistageEditingEnabled = false; - Assert.IsTrue(secondStageVehicleVM.AirdragModifiedMultistageEditingEnabled); + secondStageVehicleVm.AirdragModifiedMultistageEditingEnabled = false; + Assert.IsTrue(secondStageVehicleVm.AirdragModifiedMultistageEditingEnabled); } /// <summary> /// no airdrag component set in VIF => AirdragModifiedMultistage is disabled /// </summary> [Test] - public void airdragModifiedDisabled() + public void AirdragModifiedDisabled() { var vm = loadFile(primary_vehicle_only); - var vehicleVM = + var vehicleVm = vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as DeclarationInterimStageBusVehicleViewModel_v2_8; - Assert.IsNull(vehicleVM.AirdragModifiedMultistage); + Assert.IsNull(vehicleVm.AirdragModifiedMultistage); - Assert.IsNull(vehicleVM.AirdragModifiedMultistage); - Assert.IsFalse(vehicleVM.AirdragModifiedMultistageMandatory); + Assert.IsNull(vehicleVm.AirdragModifiedMultistage); + Assert.IsFalse(vehicleVm.AirdragModifiedMultistageMandatory); - var airdragViewModel = vehicleVM.MultistageAirdragViewModel; + var airdragViewModel = vehicleVm.MultistageAirdragViewModel; Assert.IsTrue(airdragViewModel.LoadAirdragFile(GetFullPath(airdragLoadTestFile)), "Airdrag file not loaded"); - Assert.IsFalse(vehicleVM.AirdragModifiedMultistageMandatory); + Assert.IsFalse(vehicleVm.AirdragModifiedMultistageMandatory); - vehicleVM.AirdragModifiedMultistageEditingEnabled = true; - Assert.IsFalse(vehicleVM.AirdragModifiedMultistageEditingEnabled); + vehicleVm.AirdragModifiedMultistageEditingEnabled = true; + Assert.IsFalse(vehicleVm.AirdragModifiedMultistageEditingEnabled); } /// <summary> @@ -126,7 +126,7 @@ namespace Vecto3GUI2020Test.ViewModelTests /// </summary> [Test] - public void airdragModifiedMandatory() + public void AirdragModifiedMandatory() { //var vm = loadFile(primary_vehicle_only); //var vehicleVM = @@ -144,7 +144,7 @@ namespace Vecto3GUI2020Test.ViewModelTests } [Test] - public void temporarySaveAirdragComponent1() + public void TemporarySaveAirdragComponent1() { var vm = loadFile(consolidated_multiple_stages_airdrag); @@ -176,7 +176,7 @@ namespace Vecto3GUI2020Test.ViewModelTests } [Test] - public void temporarySaveAirdragComponent2() + public void TemporarySaveAirdragComponent2() { var vm = loadFile(consolidated_multiple_stages_airdrag); @@ -187,7 +187,7 @@ namespace Vecto3GUI2020Test.ViewModelTests //Load input file var multistageJobViewModel = vm.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; - var mockDialogHelper = setMockDialogHelper(stageInputFullSample, null); + var mockDialogHelper = SetMockDialogHelper(stageInputFullSample, null); multistageJobViewModel.LoadVehicleDataCommand.Execute(null); @@ -214,7 +214,7 @@ namespace Vecto3GUI2020Test.ViewModelTests } [Test] - public void removeAirdragComponent() + public void RemoveAirdragComponent() { var vm = loadFile(consolidated_multiple_stages_airdrag); @@ -225,7 +225,7 @@ namespace Vecto3GUI2020Test.ViewModelTests //Load input file var multistageJobViewModel = vm.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; - var mockDialogHelper = setMockDialogHelper(stageInputFullSample, null); + var mockDialogHelper = SetMockDialogHelper(stageInputFullSample, null); multistageJobViewModel.LoadVehicleDataCommand.Execute(null); @@ -241,7 +241,7 @@ namespace Vecto3GUI2020Test.ViewModelTests [Test] - public void airdragModifiedSetToTrueWhenComponentIsLoaded() + public void AirdragModifiedSetToTrueWhenComponentIsLoaded() { var vm = loadFile(consolidated_multiple_stages_airdrag); diff --git a/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs b/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs new file mode 100644 index 0000000000000000000000000000000000000000..a14896327f2350609289c54051ebec0e08d1185d --- /dev/null +++ b/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs @@ -0,0 +1,174 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.Linq; +using Ninject; +using NUnit.Framework; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using VECTO3GUI2020.ViewModel.Interfaces; +using VECTO3GUI2020.ViewModel.MultiStage.Implementation; + +namespace Vecto3GUI2020Test.ViewModelTests +{ + [TestFixture] + public class ExemptedTests : ViewModelTestBase + { + #region SaveInputData + [Test, Combinatorial] + public void LoadAndSaveExemptedPrimary() + { + 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 legislativeCategory = LegislativeClass.M3; + 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); + } + #endregion + + #region SaveInputData + [Test] + public void SaveAsNewVif() + { + var newMultiStageJob = loadFile(exempted); + Assert.IsTrue(newMultiStageJob.MultiStageJobViewModel.Exempted); + + + var multistageJobViewModel = newMultiStageJob.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; + + var outputFile = GetFullPath("exemptedNewVif/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 legislativeCategory = LegislativeClass.M3; + 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; + + try { + Directory.Delete(Path.GetDirectoryName(outputFile), true); + } catch (Exception e) { + WriteLine(e.Message); + } + var result = multistageJobViewModel.SaveVif(outputFile); + + //Check that file exists + Assert.IsTrue(File.Exists(result)); + + //Check that file was added to JobList + var jobListVm = _kernel.Get<IJobListViewModel>(); + Assert.AreEqual(1, jobListVm.Jobs.Count); + Assert.AreEqual(result, jobListVm.Jobs[0].DataSource.SourceFile); + + var inputDataProvider = _testHelper.GetInputDataProvider(result) as IMultistageBusInputDataProvider; + Assert.NotNull(inputDataProvider); + + + var lastManStage = inputDataProvider.JobInputData.ManufacturingStages.Last(); + + + Assert.AreEqual(manufacturer, lastManStage.Vehicle.Manufacturer); + Assert.AreEqual(manufacturerAddress, lastManStage.Vehicle.ManufacturerAddress); + Assert.AreEqual(height.ConvertToMeter(), lastManStage.Vehicle.Height); + Assert.AreEqual(model, lastManStage.Vehicle.Model); + Assert.AreEqual(legislativeCategory, lastManStage.Vehicle.LegislativeClass); + Assert.AreEqual(curbMassChassis, lastManStage.Vehicle.CurbMassChassis); + Assert.AreEqual(technicalpermissableLadenMass, lastManStage.Vehicle.GrossVehicleMassRating); + Assert.AreEqual(registeredClass, lastManStage.Vehicle.RegisteredClass); + Assert.AreEqual(bodyWorkCode, lastManStage.Vehicle.VehicleCode); + Assert.AreEqual(lowEntry, lastManStage.Vehicle.LowEntry); + Assert.AreEqual(passengerSeatsUpperDeck, lastManStage.Vehicle.NumberPassengerSeatsUpperDeck); + Assert.AreEqual(PassengerSeatsLowerDeck, lastManStage.Vehicle.NumberPassengerSeatsLowerDeck); + + } + #endregion + + + + } +} \ No newline at end of file diff --git a/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs b/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs index daff148eaa6585ff272e3a6c4bf98a404f9d4487..ae93b40edf7ca06cebcdbe3cf1a3817a2d11429a 100644 --- a/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs +++ b/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs @@ -56,7 +56,7 @@ namespace Vecto3GUI2020Test var fileName = primary_vehicle_only.Replace(".xml", "") + "_output.xml"; deleteFile(fileName); - setMockDialogHelper(null, fileToSave: fileName); + SetMockDialogHelper(null, fileToSave: fileName); manufacturingStage.SaveInputDataAsCommand.Execute(null); @@ -64,111 +64,21 @@ namespace Vecto3GUI2020Test } [Test] - public void LoadPrimaryAndSave() + public void LoadPrimaryAndSaveAsVif() { //load file var newMultiStageJob = loadFile(primary_vehicle_only); var vehicle = newMultiStageJob.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as DeclarationInterimStageBusVehicleViewModel_v2_8; - - } - [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); + - } - - - - - [Ignore("Validation is only performed with gui")] - [TestCase(primary_vehicle_only)] - [TestCase(consolidated_multiple_stages)] - [TestCase(consolidated_one_stage)] - public void SaveVehicleDataWithMissingFields(string fileName) - { - var newMultistageJobViewModel = loadFile(fileName); - var manstage = newMultistageJobViewModel.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; - Assert.NotNull(manstage); - - var saveFileName = fileName.Replace(".xml", "") + "_output.xml"; - deleteFile(saveFileName); - _kernel.Rebind<IDialogHelper>().ToConstant(setMockDialogHelper(fileToSave: saveFileName).Object); - manstage.SaveInputDataAsCommand.Execute(null); - - Assert.False(checkFileNameExists(saveFileName)); - - } - [Test] public void ReloadInputFile() { @@ -182,7 +92,7 @@ namespace Vecto3GUI2020Test Assert.True(vehicle.AirdragModifiedMultistageEditingEnabled); - var mockDialog = setMockDialogHelper(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; @@ -207,7 +117,7 @@ namespace Vecto3GUI2020Test var fileToSave = "loadAndSaveFullInputDataTest.xml"; - var mockDialogHelper = setMockDialogHelper(stageInputFullSample, fileToSave); + var mockDialogHelper = SetMockDialogHelper(stageInputFullSample, fileToSave); multiStageJobViewModel.LoadVehicleDataCommand.Execute(null); var manufacturingStageViewModel = @@ -299,6 +209,12 @@ namespace Vecto3GUI2020Test Assert.Null(vifInputData.VehicleInputData.Components); } + + + + + + [TestCase(consolidated_multiple_stages_airdrag, true)] [TestCase(consolidated_multiple_stages, null)] [TestCase(consolidated_one_stage, null)] @@ -325,7 +241,7 @@ namespace Vecto3GUI2020Test var fileToSave = "stageInput.xml"; - var mockDialogHelper = setMockDialogHelper(null, fileToSave: fileToSave); + var mockDialogHelper = SetMockDialogHelper(null, fileToSave: fileToSave); TestContext.Write("Saving file with loaded Airdrag Component ... "); var multistageJobViewModel = vm.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; @@ -397,7 +313,7 @@ namespace Vecto3GUI2020Test var manStageViewModel = multiStageViewModel.ManufacturingStageViewModel as ManufacturingStageViewModel_v0_1; var vehicleInputData = "vecto_vehicle-stage_input_full-sample.xml"; - var mockDialogHelper = setMockDialogHelper(fileToLoad: vehicleInputData, fileToSave: null); + var mockDialogHelper = SetMockDialogHelper(fileToLoad: vehicleInputData, fileToSave: null); var vehicleInputDataFilePath = mockDialogHelper.Object.OpenXMLFileDialog(); TestContext.WriteLine($"Loading {vehicleInputDataFilePath}"); Assert.IsTrue(File.Exists(vehicleInputDataFilePath)); diff --git a/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs b/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs index f43a7276f36d0bdb8b9423585e0cf1880f25bb29..3b2df880ea98424ab11148f40c5d4babfcef7646 100644 --- a/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs +++ b/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs @@ -18,7 +18,7 @@ namespace Vecto3GUI2020Test.ViewModelTests [Test] public void loadPrimaryVehicleOnlyAndCreateNewVIF() { - var multistagevm = loadFile(primary_vehicle_only).MultiStageJobViewModel; + var multistagevm = loadFile(primary_vehicle_only).MultiStageJobViewModel as MultiStageJobViewModel_v0_1; var stage = multistagevm.ManufacturingStageViewModel.StageCount; Assert.AreEqual(2, stage); @@ -33,10 +33,10 @@ namespace Vecto3GUI2020Test.ViewModelTests var writer = GetFileOutputVIFWriter(multistagevm); deleteFile(writer.XMLMultistageReportFileName); - setMockDialogHelper(null, writer.XMLMultistageReportFileName); - _kernel.Rebind<IDialogHelper>().ToConstant(setMockDialogHelper(null, writer.XMLMultistageReportFileName).Object); + SetMockDialogHelper(null, writer.XMLMultistageReportFileName); + _kernel.Rebind<IDialogHelper>().ToConstant(SetMockDialogHelper(null, writer.XMLMultistageReportFileName).Object); - MultiStageJobViewModel_v0_1.SaveVif(multistagevm, writer); + multistagevm.SaveVif(multistagevm, writer); Assert.IsTrue(File.Exists(writer.XMLMultistageReportFileName)); @@ -50,7 +50,7 @@ namespace Vecto3GUI2020Test.ViewModelTests { - setMockDialogHelper(consolidated_multiple_stages, null); + SetMockDialogHelper(consolidated_multiple_stages, null); var newMultistageJobViewModel = _kernel.Get<NewMultiStageJobViewModel>(); newMultistageJobViewModel.AddVifFile.Execute(null); @@ -65,7 +65,7 @@ namespace Vecto3GUI2020Test.ViewModelTests var multiStageViewModel = newMultistageJobViewModel.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; Assert.NotNull(multiStageViewModel); - setMockDialogHelper(stageInputFullSample, null); + SetMockDialogHelper(stageInputFullSample, null); multiStageViewModel.LoadVehicleDataCommand.Execute(null); @@ -80,9 +80,9 @@ namespace Vecto3GUI2020Test.ViewModelTests var writer = GetFileOutputVIFWriter(multiStageViewModel); deleteFile(writer.XMLMultistageReportFileName); - setMockDialogHelper(null, writer.XMLMultistageReportFileName); + SetMockDialogHelper(null, writer.XMLMultistageReportFileName); - MultiStageJobViewModel_v0_1.SaveVif(multiStageViewModel, writer); + multiStageViewModel.SaveVif(multiStageViewModel, writer); var validator = new XMLValidator(XmlReader.Create(writer.XMLMultistageReportFileName)); Assert.True(validator.ValidateXML(TUGraz.VectoCore.Utils.XmlDocumentType.MultistageOutputData)); diff --git a/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs b/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs index 7f5d3ef5692cb23875978161f14ebb06728a06db..33120846ca98826c7d33479227d4299344e7ec3f 100644 --- a/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs +++ b/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs @@ -106,59 +106,18 @@ namespace Vecto3GUI2020Test.ViewModelTests var vehicleVM = vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as DeclarationInterimStageBusVehicleViewModel_v2_8; - setMockDialogHelper(stageInputFullSample); + SetMockDialogHelper(stageInputFullSample); var vmConc = vm.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; vmConc.LoadVehicleDataCommand.Execute(null); Assert.IsFalse(vmConc.ManufacturingStageViewModel.VehicleViewModel.HasErrors); } - //[Test] - //public void groupEditing() - //{ - // var vm = loadFile(primary_vehicle_only); - // var vehicleVM = - // vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as - // DeclarationInterimStageBusVehicleViewModel_v2_8; - - // vehicleVM.NumberOfPassengersUpperDeck = 2; - - // Assert.IsTrue(vehicleVM.NumberOfPassengersEditingEnabled); - // Assert.AreEqual(2, vehicleVM.NumberOfPassengersUpperDeck); - // vehicleVM.NumberOfPassengersLowerDeck = 3; - // Assert.AreEqual(3, vehicleVM.NumberOfPassengersLowerDeck); - //} - - - //[Test] - //public void automaticallyEnableEditingWhenContentIsSet() - //{ - // var vm = loadFile(primary_vehicle_only); - // var vehicleVM = - // vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as - // DeclarationInterimStageBusVehicleViewModel_v2_8; - - - // vehicleVM.NumberOfPassengersUpperDeck = 2; - // Assert.IsTrue(vehicleVM.NumberOfPassengersEditingEnabled); - - // vehicleVM.NumberOfPassengersUpperDeck = null; - - // getMockDialogHelper(stageInputFullSample); - // var vmConc = vm.MultiStageJobViewModel as MultiStageJobViewModel_v0_1; - // vmConc.LoadVehicleDataCommand.Execute(null); - - - // Assert.IsTrue(vehicleVM.ParameterViewModels[nameof(vehicleVM.NumberOfPassengersUpperDeck)].EditingEnabled); - // Assert.IsTrue(vehicleVM.NumberOfPassengersEditingEnabled); - //} - - #region ADAS [Test] - public void loadPrimaryAndEdit() + public void LoadPrimaryAndEdit() { var vm = loadFile(primary_vehicle_only); Assert.NotNull(vm); @@ -176,13 +135,6 @@ namespace Vecto3GUI2020Test.ViewModelTests Assert.Null(vehicleData.ADAS); } - - - - - - - #endregion diff --git a/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs b/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs index f74f91c18f921df5455daf679c223f2a4b2b9163..1a2e88c5ae96379a0bad352b827d935d2a1ad7ec 100644 --- a/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs +++ b/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs @@ -19,20 +19,12 @@ namespace Vecto3GUI2020Test { protected const string TestDataDirPath = @"Testdata\"; protected const string consolidated_multiple_stages = "vecto_multistage_consolidated_multiple_stages.xml"; - - protected const string consolidated_multiple_stages_airdrag = - "vecto_multistage_consolidated_multiple_stages_airdrag.xml"; - - protected const string consolidated_multiple_stages_hev = - "vecto_multistage_consolidated_multiple_stages_hev.xml"; - + protected const string consolidated_multiple_stages_airdrag = "vecto_multistage_consolidated_multiple_stages_airdrag.xml"; + protected const string consolidated_multiple_stages_hev = "vecto_multistage_consolidated_multiple_stages_hev.xml"; protected const string consolidated_one_stage = "vecto_multistage_consolidated_one_stage.xml"; protected const string primary_vehicle_only = "vecto_multistage_primary_vehicle_only.xml"; - - - + protected const string exempted = "exempted_primary_heavyBus.VIF.xml"; protected const string stageInputFullSample = "vecto_vehicle-stage_input_full-sample.xml"; - protected const string airdragLoadTestFile = "AirdragLoadTestFile.xml"; //protected IXMLInputDataReader xmlInputReader; @@ -40,6 +32,8 @@ namespace Vecto3GUI2020Test private Mock<IDialogHelper> _mockDialogHelper; + protected TestHelper _testHelper; + [SetUp] public void OneTimeSetUp() { @@ -54,8 +48,9 @@ namespace Vecto3GUI2020Test new Vecto3GUI2020Module() ); //xmlInputReader = _kernel.Get<IXMLInputDataReader>(); - _kernel.Rebind<IDialogHelper>().ToConstant(setMockDialogHelper().Object); + _kernel.Rebind<IDialogHelper>().ToConstant(SetMockDialogHelper().Object); + _testHelper = new TestHelper(_kernel.Get<IXMLInputDataReader>()); } [TearDown] @@ -94,7 +89,7 @@ namespace Vecto3GUI2020Test public virtual NewMultiStageJobViewModel loadFile(string fileName) { - var mockDialogHelper = setMockDialogHelper(fileName); + var mockDialogHelper = SetMockDialogHelper(fileName); var newMultistageJobViewModel = _kernel.Get<NewMultiStageJobViewModel>(); newMultistageJobViewModel.AddVifFile.Execute(null); @@ -113,16 +108,10 @@ namespace Vecto3GUI2020Test var airdragViewModel = (manstageVehicleViewModel as DeclarationInterimStageBusVehicleViewModel_v2_8)?.MultistageAirdragViewModel; Assert.NotNull(airdragViewModel); } - - - - - - return newMultistageJobViewModel; } - protected virtual Mock<IDialogHelper> setMockDialogHelper(string fileToLoad = null, string fileToSave = null) + protected virtual Mock<IDialogHelper> SetMockDialogHelper(string fileToLoad = null, string fileToSave = null) { if (_mockDialogHelper == null) { _mockDialogHelper = new Mock<IDialogHelper>(); @@ -139,6 +128,8 @@ namespace Vecto3GUI2020Test 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); @@ -164,7 +155,7 @@ namespace Vecto3GUI2020Test return _mockDialogHelper; } - protected Mock<IDialogHelper> getMockDialogHelper() + protected Mock<IDialogHelper> GetMockDialogHelper() { return _mockDialogHelper; } @@ -175,5 +166,14 @@ namespace Vecto3GUI2020Test Debug.WriteLine(path); return path; } + + protected void Write(string outputMessage) + { + TestContext.Write(outputMessage); + } + protected void WriteLine(string outputMessage) + { + TestContext.WriteLine(outputMessage); + } } } \ No newline at end of file