public void ValidateEditorPropertySharedResourceRegexWithResourceIsNotString() { IResultingDeviceViewModel initialDevice = Program.GetApp().Container.Resolve <IResultingDeviceViewModel>(); var configurationEditorViewModel = _typesContainer.Resolve <IFragmentEditorViewModel>( ApplicationGlobalNames.FragmentInjectcionStrings.CONFIGURATION + ApplicationGlobalNames.CommonInjectionStrings.EDITOR_VIEWMODEL) as ConfigurationEditorViewModel; var deviceSharedResources = new DeviceSharedResources(); ISharedResourcesGlobalViewModel sharedResourcesGlobalViewModel = _typesContainer.Resolve <ISharedResourcesGlobalViewModel>(); sharedResourcesGlobalViewModel.InitializeFromResources(deviceSharedResources); var rootGroup = new ConfigurationGroupEditorViewModel() { Name = "root" }; configurationEditorViewModel.RootConfigurationItemViewModels.Add(rootGroup); var property = EditorHelpers.AddPropertyViewModel(rootGroup.ChildStructItemViewModels, 1, _typesContainer); property.FormatterParametersViewModel.RelatedUshortsFormatterViewModel = new BoolFormatterViewModel(); property.Name = "Pupa"; configurationEditorViewModel.SelectedRow = property; sharedResourcesGlobalViewModel.AddAsSharedResourceWithContainer(property, null, false); property.Parent = rootGroup; var property2 = EditorHelpers.AddPropertyViewModel(rootGroup.ChildStructItemViewModels, 2, _typesContainer); property2.DependencyViewModels.Add( new ConditionResultDependencyViewModel(new List <IResultViewModel>(), new List <IConditionViewModel>()) { SelectedConditionViewModel = new RegexMatchConditionViewModel( _typesContainer.Resolve <ISharedResourcesGlobalViewModel>()) { ReferencedResourcePropertyName = "Pupa" } }); initialDevice.FragmentEditorViewModels .Add(configurationEditorViewModel); var res = _typesContainer.Resolve <IDeviceEditorViewModelValidator>() .ValidateDeviceEditor(new List <IFragmentEditorViewModel>() { configurationEditorViewModel }); Assert.True(res.Count == 1); }
public AddFragmentViewModel(IResultingDeviceViewModel resultingDeviceViewModel) { _resultingDeviceViewModel = resultingDeviceViewModel; AvailableFragments = new ObservableCollection <IFragmentEditorViewModel>(); IEnumerable <IFragmentEditorViewModel> fragments = _container.ResolveAll <IFragmentEditorViewModel>(); foreach (IFragmentEditorViewModel fragment in fragments) { AvailableFragments.Add(fragment); } AddSelectedFragmentCommand = new RelayCommand <object>(OnAddSelectedFragment, CanAddSelectedFragment); }
public void EditorImportPropertiesTypeASave() { var globalCommandsMock = ApplicationGlobalCommandsMock .Create() .WithAskUserGlobalResult(true).WithSelectFileToOpenResult("FileAssets/МР5ПО60_ВЛС.xlsx"); StaticContainer.Container.RegisterInstance <IApplicationGlobalCommands>(globalCommandsMock); var serializerService = Program.GetApp().Container.Resolve <ISerializerService>(); IResultingDeviceViewModel initialDevice = Program.GetApp().Container.Resolve <IResultingDeviceViewModel>(); initialDevice.LoadDevice("FileAssets/testFile.json"); var configurationEditorViewModel = initialDevice.FragmentEditorViewModels.First() as ConfigurationEditorViewModel; var targetGroup = configurationEditorViewModel.RootConfigurationItemViewModels.First(); targetGroup.ChildStructItemViewModels.Clear(); var helper = Program.GetApp().Container.Resolve <ImportPropertiesFromExcelTypeAHelper>(); helper.ImportPropertiesToGroup(targetGroup as IConfigurationGroupEditorViewModel); Program.CleanProject(); var device = initialDevice.GetDevice(); Program.GetApp().Container.Resolve <IDevicesContainerService>() .AddConnectableItem(device); var shell = Program.GetApp().Container.Resolve <ShellViewModel>(); var deviceViewModel = shell.ProjectBrowserViewModel.DeviceViewModels[0]; var configurationFragmentViewModel = shell.ProjectBrowserViewModel.DeviceViewModels[0].FragmentViewModels .First(model => model.NameForUiKey == "Configuration") as RuntimeConfigurationViewModel; var group = configurationEditorViewModel.RootConfigurationItemViewModels.First(); Assert.AreEqual(group.ChildStructItemViewModels.Count, 111); Assert.AreEqual(group.ChildStructItemViewModels[49].Header, "U2>> ИО"); Assert.True( (((device.DeviceFragments.First() as IDeviceConfiguration).RootConfigurationItemList[0] as IItemsGroup).ConfigurationItemList[100] as IProperty).IsFromBits); Assert.True( (((device.DeviceFragments.First() as IDeviceConfiguration).RootConfigurationItemList[0] as IItemsGroup).ConfigurationItemList[100] as IProperty).UshortsFormatter is IBoolFormatter); }
public void ValidateEditorConfigurationWithErrorComplexProperty() { IResultingDeviceViewModel initialDevice = Program.GetApp().Container.Resolve <IResultingDeviceViewModel>(); var configurationEditorViewModel = _typesContainer.Resolve <IFragmentEditorViewModel>( ApplicationGlobalNames.FragmentInjectcionStrings.CONFIGURATION + ApplicationGlobalNames.CommonInjectionStrings.EDITOR_VIEWMODEL) as ConfigurationEditorViewModel; var rootGroup = new ConfigurationGroupEditorViewModel() { Name = "root" }; var property = _typesContainer.Resolve <IComplexPropertyEditorViewModel>(); rootGroup.ChildStructItemViewModels .Add(property); configurationEditorViewModel.RootConfigurationItemViewModels.Add(rootGroup); initialDevice.FragmentEditorViewModels .Add(configurationEditorViewModel); var res = _typesContainer.Resolve <IDeviceEditorViewModelValidator>() .ValidateDeviceEditor(new List <IFragmentEditorViewModel>() { configurationEditorViewModel }); Assert.True(res.Count == 0); var newDevice = initialDevice.GetDevice(); IResultingDeviceViewModel newDeviceViewModel = Program.GetApp().Container.Resolve <IResultingDeviceViewModel>(); newDeviceViewModel.LoadDevice(newDevice); var resNew = _typesContainer.Resolve <IDeviceEditorViewModelValidator>() .ValidateDeviceEditor(new List <IFragmentEditorViewModel>() { newDeviceViewModel.FragmentEditorViewModels.First() }); Assert.True(resNew.Count == 0); }
public DeviceEditorViewModel(ILocalizerService localizerService, IDialogCoordinator dialogCoordinator, IResultingDeviceViewModel resultingDeviceViewModel, IDevicesContainerService devicesContainerService, IApplicationGlobalCommands applicationGlobalCommands, IDeviceEditorViewModelValidator deviceEditorViewModelValidator) { _localizerService = localizerService; _dialogCoordinator = dialogCoordinator; _resultingDeviceViewModel = resultingDeviceViewModel; _devicesContainerService = devicesContainerService; _applicationGlobalCommands = applicationGlobalCommands; LoadExistingDevice = new RelayCommand(OnLoadExistingDevice); CreateDeviceCommand = new RelayCommand(OnCreateDeviceExecute); SaveInFileCommand = new RelayCommand(OnSaveInFileExecute); OpenSharedResourcesCommand = new RelayCommand(OnOpenSharedResourcesExecute); DeleteFragmentCommand = new RelayCommand <object>(OnDeleteFragmentExecute); OpenAddFragmentWindowCommand = new RelayCommand(OnOpenAddFragmentWindowCommand); _currentFolder = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), DEFAULT_FOLDER); DeviceEditorValidationViewModel = new DeviceEditorValidationViewModel(() => deviceEditorViewModelValidator.ValidateDeviceEditor(ResultingDeviceViewModel.FragmentEditorViewModels .ToList())); _applicationGlobalCommands.SetGlobalDialogContext(this); }
public void EditorBaseValuesSave() { var serializerService = Program.GetApp().Container.Resolve <ISerializerService>(); IResultingDeviceViewModel initialDevice = Program.GetApp().Container.Resolve <IResultingDeviceViewModel>(); initialDevice.LoadDevice("FileAssets/testFile.json"); var configurationEditorViewModel = initialDevice.FragmentEditorViewModels.First() as ConfigurationEditorViewModel; var memoryForBaseValues = serializerService.DeserializeFromFile <Dictionary <ushort, ushort> >( "FileAssets/Конфигурация testFile.cnf"); var baseValuesMemory = Result <Dictionary <ushort, ushort> > .Create(memoryForBaseValues, true); configurationEditorViewModel.BaseValuesViewModel = new BaseValuesViewModel(); configurationEditorViewModel.BaseValuesViewModel.BaseValuesViewModels.Add(new BaseValueViewModel() { Name = "baseVal1", BaseValuesMemory = baseValuesMemory }); configurationEditorViewModel.BaseValuesViewModel.BaseValuesViewModels.Add(new BaseValueViewModel() { Name = "baseVal2", BaseValuesMemory = baseValuesMemory }); var result = ConfigurationFragmentFactory.CreateConfiguration(configurationEditorViewModel); Assert.AreEqual(result.BaseValues.BaseValues.Count, 2); Assert.True(result.BaseValues.BaseValues[0].Name == "baseVal1"); Assert.True(result.BaseValues.BaseValues[1].Name == "baseVal2"); Program.CleanProject(); var globalCommandsMock = ApplicationGlobalCommandsMock .Create() .WithAskUserGlobalResult(true); StaticContainer.Container.RegisterInstance <IApplicationGlobalCommands>(globalCommandsMock); var device = initialDevice.GetDevice(); Program.GetApp().Container.Resolve <IDevicesContainerService>() .AddConnectableItem(device); var shell = Program.GetApp().Container.Resolve <ShellViewModel>(); var deviceViewModel = shell.ProjectBrowserViewModel.DeviceViewModels[0]; var configurationFragmentViewModel = shell.ProjectBrowserViewModel.DeviceViewModels[0].FragmentViewModels .First(model => model.NameForUiKey == "Configuration") as RuntimeConfigurationViewModel; var command = configurationFragmentViewModel.FragmentOptionsViewModel.GetCommand("BaseValues", "baseVal1"); var editableChosenFromListValueViewModel = ((configurationFragmentViewModel.AllRows[4].ChildStructItemViewModels[2] as ILocalAndDeviceValueContainingViewModel).LocalValue as EditableChosenFromListValueViewModel); Assert.AreEqual( editableChosenFromListValueViewModel.SelectedItem, "Нет"); command.OptionCommand.Execute(null); Assert.AreEqual( editableChosenFromListValueViewModel.SelectedItem, "Д2 Инв"); editableChosenFromListValueViewModel.SelectedItem = editableChosenFromListValueViewModel.AvailableItemsList[1]; Assert.AreEqual( editableChosenFromListValueViewModel.SelectedItem, "Д1 Инв"); command.OptionCommand.Execute(null); Assert.AreEqual( editableChosenFromListValueViewModel.SelectedItem, "Д2 Инв"); }
public void ValidateEditorRemovePropertySharedResource() { IResultingDeviceViewModel initialDevice = Program.GetApp().Container.Resolve <IResultingDeviceViewModel>(); var configurationEditorViewModel = _typesContainer.Resolve <IFragmentEditorViewModel>( ApplicationGlobalNames.FragmentInjectcionStrings.CONFIGURATION + ApplicationGlobalNames.CommonInjectionStrings.EDITOR_VIEWMODEL) as ConfigurationEditorViewModel; var deviceSharedResources = new DeviceSharedResources(); ISharedResourcesGlobalViewModel sharedResourcesGlobalViewModel = _typesContainer.Resolve <ISharedResourcesGlobalViewModel>(); sharedResourcesGlobalViewModel.InitializeFromResources(deviceSharedResources); var rootGroup = new ConfigurationGroupEditorViewModel() { Name = "root" }; configurationEditorViewModel.RootConfigurationItemViewModels.Add(rootGroup); var property = EditorHelpers.AddPropertyViewModel(rootGroup.ChildStructItemViewModels, 1, _typesContainer); property.Name = "Pupa"; configurationEditorViewModel.SelectedRow = property; sharedResourcesGlobalViewModel.AddAsSharedResourceWithContainer(property, null, false); property.Parent = rootGroup; property.DeleteElement(); var property2 = EditorHelpers.AddPropertyViewModel(rootGroup.ChildStructItemViewModels, 2, _typesContainer); property2.DependencyViewModels.Add( new ConditionResultDependencyViewModel(new List <IResultViewModel>(), new List <IConditionViewModel>()) { SelectedConditionViewModel = new CompareResourceConditionViewModel( _typesContainer.Resolve <ISharedResourcesGlobalViewModel>(), new List <string>(Enum.GetNames(typeof(ConditionsEnum)))) { ReferencedResourcePropertyName = "Pupa" } }); initialDevice.FragmentEditorViewModels .Add(configurationEditorViewModel); var res = _typesContainer.Resolve <IDeviceEditorViewModelValidator>() .ValidateDeviceEditor(new List <IFragmentEditorViewModel>() { configurationEditorViewModel }); Assert.True(res.Count == 1); Assert.True(res[0].ErrorMessage.Contains(ApplicationGlobalNames.StatusMessages.RESOURCE_FOR_DEPENDENCY_NOT_FOUND_MESSAGE)); }
public void ValidateEditorConfigurationWithMissingResourceDependencyError() { IResultingDeviceViewModel initialDevice = Program.GetApp().Container.Resolve <IResultingDeviceViewModel>(); var configurationEditorViewModel = _typesContainer.Resolve <IFragmentEditorViewModel>( ApplicationGlobalNames.FragmentInjectcionStrings.CONFIGURATION + ApplicationGlobalNames.CommonInjectionStrings.EDITOR_VIEWMODEL) as ConfigurationEditorViewModel; var rootGroup = new ConfigurationGroupEditorViewModel() { Name = "root" }; var property = EditorHelpers.AddPropertyViewModel(rootGroup.ChildStructItemViewModels, 1, _typesContainer); property.DependencyViewModels.Add( new ConditionResultDependencyViewModel(new List <IResultViewModel>(), new List <IConditionViewModel>()) { SelectedConditionViewModel = new CompareResourceConditionViewModel( _typesContainer.Resolve <ISharedResourcesGlobalViewModel>(), new List <string>(Enum.GetNames(typeof(ConditionsEnum)))) { ReferencedResourcePropertyName = "" } }); var property2 = EditorHelpers.AddPropertyViewModel(rootGroup.ChildStructItemViewModels, 2, _typesContainer); property2.DependencyViewModels.Add( new ConditionResultDependencyViewModel(new List <IResultViewModel>(), new List <IConditionViewModel>()) { SelectedConditionViewModel = new CompareResourceConditionViewModel( _typesContainer.Resolve <ISharedResourcesGlobalViewModel>(), new List <string>(Enum.GetNames(typeof(ConditionsEnum)))) { ReferencedResourcePropertyName = "Pupa" } }); var property3 = EditorHelpers.AddPropertyViewModel(rootGroup.ChildStructItemViewModels, 2, _typesContainer); property3.DependencyViewModels.Add( new ConditionResultDependencyViewModel(new List <IResultViewModel>(), new List <IConditionViewModel>()) { SelectedConditionViewModel = new RegexMatchConditionViewModel( _typesContainer.Resolve <ISharedResourcesGlobalViewModel>()) { ReferencedResourcePropertyName = "Pupa" } }); var property4 = EditorHelpers.AddPropertyViewModel(rootGroup.ChildStructItemViewModels, 2, _typesContainer); property4.DependencyViewModels.Add( new ConditionResultDependencyViewModel(new List <IResultViewModel>(), new List <IConditionViewModel>()) { SelectedConditionViewModel = new RegexMatchConditionViewModel( _typesContainer.Resolve <ISharedResourcesGlobalViewModel>()) { ReferencedResourcePropertyName = "" } }); configurationEditorViewModel.RootConfigurationItemViewModels.Add(rootGroup); initialDevice.FragmentEditorViewModels .Add(configurationEditorViewModel); var res = _typesContainer.Resolve <IDeviceEditorViewModelValidator>() .ValidateDeviceEditor(new List <IFragmentEditorViewModel>() { configurationEditorViewModel }); Assert.True(res.Count == 4); }