public void SimpleCondition_Remove() { var model = new FilterDialogViewModel(); var idProperty = model.Properties.Single(x => x.Name == "Id"); var relation = idProperty.Relations.First(); model.Conditions.Add(new SimpleFilterConditionViewModel( idProperty, new TraceLogFilterCondition( idProperty.Expression, true, relation.Kind, FilterConditionAction.Exclude, (ushort)23))); model.SelectedCondition = model.Conditions[0]; model.AdvancedMode = true; Assert.True(model.RemoveCommand.CanExecute(null)); model.RemoveCommand.Execute(null); Assert.False(model.RemoveCommand.CanExecute(null)); Assert.True(model.AddCommand.CanExecute(null)); Assert.Null(model.SelectedCondition); Assert.Equal(idProperty, model.SelectedProperty); Assert.Equal(relation, model.SelectedRelation); Assert.Equal((ushort)23, model.TargetValue.RawValue); Assert.False(model.AdvancedMode); Assert.Equal(FilterConditionAction.Exclude, model.SelectedAction); }
public void EmptyModel() { var model = new FilterDialogViewModel(); Assert.Empty(model.Conditions); Assert.False(model.AddCommand.CanExecute(null)); Assert.False(model.RemoveCommand.CanExecute(null)); Assert.True(model.AcceptCommand.CanExecute(null)); Assert.False(model.ApplyCommand.CanExecute(null)); }
public void AdvancedCondition_CannotAddInvalid() { var model = new FilterDialogViewModel(); model.AdvancedMode = true; model.Expression = "Id == ProviderId"; model.SelectedAction = FilterConditionAction.Exclude; Assert.False(model.AddCommand.CanExecute(null)); Assert.False(model.RemoveCommand.CanExecute(null)); Assert.True(model.AcceptCommand.CanExecute(null)); }
private async Task <FilterOptions?> GetOptionsAsync() { IHierarchyProvider hierarchyProvider; IExtensionSettings settings; TextFilterFactory textFilterFactory; Func <Task <IEnumerable <IHierarchyNode> > > hierarchyFactory; await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); hierarchyProvider = await VS.GetRequiredServiceAsync <IHierarchyProvider, IHierarchyProvider>(); settings = await VS.GetRequiredServiceAsync <IExtensionSettings, IExtensionSettings>(); textFilterFactory = await CreateTextFilterFactoryAsync(); hierarchyFactory = async() => await hierarchyProvider.GetHierarchyAsync(); using (var vm = new FilterDialogViewModel(hierarchyFactory, Debouncer.Create, textFilterFactory, Package.JoinableTaskFactory)) { FilterDialog dialog; bool result; await settings.LoadAsync(); vm.LoadProjectDependencies = settings.LoadProjectDependencies; vm.UseRegularExpressions = settings.UseRegularExpressions; dialog = new FilterDialog { DataContext = vm }; result = dialog.ShowModal().GetValueOrDefault(); settings.LoadProjectDependencies = vm.LoadProjectDependencies; settings.UseRegularExpressions = vm.UseRegularExpressions; await settings.SaveAsync(); if (result) { return(vm.Result); } } return(null); }
public void AdvancedCondition_Remove() { var model = new FilterDialogViewModel(); model.Conditions.Add(new AdvancedFilterConditionViewModel( new TraceLogFilterCondition("Id == 23", true, FilterConditionAction.Exclude))); model.SelectedCondition = model.Conditions[0]; Assert.True(model.RemoveCommand.CanExecute(null)); model.RemoveCommand.Execute(null); Assert.False(model.RemoveCommand.CanExecute(null)); Assert.True(model.AddCommand.CanExecute(null)); Assert.Null(model.SelectedCondition); Assert.Equal("Id == 23", model.Expression); Assert.True(model.AdvancedMode); Assert.Equal(FilterConditionAction.Exclude, model.SelectedAction); }
public void AdvancedCondition_Add() { var model = new FilterDialogViewModel(); model.AdvancedMode = true; model.Expression = "Id == 23"; model.SelectedAction = FilterConditionAction.Exclude; Assert.True(model.AddCommand.CanExecute(null)); Assert.False(model.RemoveCommand.CanExecute(null)); Assert.True(model.AcceptCommand.CanExecute(null)); model.AddCommand.Execute(null); Assert.Single(model.Conditions); Assert.Equal("Id == 23", model.Conditions[0].DisplayName); Assert.True(model.Conditions[0].IsEnabled); Assert.Equal(FilterConditionAction.Exclude, model.Conditions[0].Action); Assert.True(model.AddCommand.CanExecute(null)); Assert.False(model.RemoveCommand.CanExecute(null)); Assert.True(model.AcceptCommand.CanExecute(null)); }
public void SimpleCondition_Add() { var model = new FilterDialogViewModel(); model.SelectedProperty = model.Properties.Single(x => x.Name == "Id"); model.SelectedRelation = model.Relations.Single(x => x.DisplayName == "=="); model.TargetValue.RawValue = (ushort)23; model.SelectedAction = FilterConditionAction.Exclude; Assert.True(model.AddCommand.CanExecute(null)); Assert.False(model.RemoveCommand.CanExecute(null)); Assert.True(model.AcceptCommand.CanExecute(null)); model.AddCommand.Execute(null); Assert.Single(model.Conditions); Assert.Equal("Id == 23", model.Conditions[0].DisplayName); Assert.True(model.Conditions[0].IsEnabled); Assert.Equal(FilterConditionAction.Exclude, model.Conditions[0].Action); Assert.True(model.AddCommand.CanExecute(null)); Assert.False(model.RemoveCommand.CanExecute(null)); Assert.True(model.AcceptCommand.CanExecute(null)); }