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

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

Updated Tests,

removed HideOnMainWindowBehavior
parent 5e327974
No related branches found
No related tags found
No related merge requests found
Showing
with 416 additions and 342 deletions
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
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
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
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
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
......@@ -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">
......
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
......
......@@ -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" />
......
......@@ -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();
......
......@@ -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;
......
......@@ -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}"
......
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
......@@ -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]
......
......@@ -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);
......
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
......@@ -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));
......
......@@ -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));
......
......@@ -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
......
......@@ -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
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