public void ItemsSourceChangedNonGenericShouldBeInvokedWhenItemsSourceChanged() { ThreadManager.IsUiThread = true; bool isItemsSourceChanged = false; var model = new GridModel { Name = "test" }; var listItems = new List<GridModel> { model }; IGridViewModel gridViewModel = GetViewModel<GridViewModel<GridModel>>(); gridViewModel.ItemsSourceChanged += (sender, data) => { if (isItemsSourceChanged) throw new InvalidOperationException(); isItemsSourceChanged = true; gridViewModel.ItemsSource.ShouldEqual(data.Value); }; gridViewModel.UpdateItemsSource(listItems); isItemsSourceChanged.ShouldBeTrue(); }
public void SelectedItemChangedGenericShouldBeInvokedWhenSelectedItemChanged() { ThreadManager.IsUiThread = true; bool isFocusedRowChanged = false; var model = new GridModel { Name = "test" }; var listItems = new List<GridModel> { model }; var gridViewModel = GetViewModel<GridViewModel<GridModel>>(); gridViewModel.SelectedItemChanged += (sender, args) => { if (isFocusedRowChanged) throw new InvalidOperationException(); isFocusedRowChanged = true; args.OldValue.ShouldBeNull(); args.NewValue.ShouldEqual(model); }; gridViewModel.UpdateItemsSource(listItems); gridViewModel.SelectedItem = model; isFocusedRowChanged.ShouldBeTrue(); }
public void SetOriginalItemsSourceShouldGetDataFromPrevious() { var model = new GridModel { Name = "test" }; var listItems = new List<GridModel> { model }; var viewModel = GetViewModel<GridViewModel<GridModel>>(); viewModel.UpdateItemsSource(listItems); var newItemsSource = new ObservableCollection<GridModel>(); viewModel.SetOriginalItemsSource(newItemsSource); newItemsSource.SequenceEqual(listItems).ShouldBeTrue(); }
public void InternalItemsSourceEventsTest() { var model = new GridModel { Name = "test" }; var listItems = new List<GridModel> { model }; var viewModel = GetViewModel<GridViewModelMock>(); viewModel.UpdateItemsSource(listItems); viewModel.ItemsSourceChangingValue.ShouldEqual(listItems); viewModel.ItemsSource.ShouldBeEmpty(); viewModel.ItemsSourceChangingResult = listItems; viewModel.UpdateItemsSource(listItems); viewModel.ItemsSourceChangingValue.ShouldEqual(listItems); viewModel.ItemsSourceChangedValue.ShouldEqual(viewModel.ItemsSource); viewModel.ItemsSource.ShouldNotBeNull(); viewModel.ItemsSource.All(listItems.Contains).ShouldBeTrue(); }
public void InternalSelectedRowEventTest() { var model = new GridModel { Name = "test" }; var listItems = new List<GridModel> { model }; var viewModel = GetViewModel<GridViewModelMock>(); viewModel.ItemsSourceChangingResult = listItems; viewModel.UpdateItemsSource(listItems); viewModel.SelectedItem = model; viewModel.SelectedItemChanging.ShouldEqual(model); viewModel.SelectedItem.ShouldBeNull(); viewModel.SelectedItemChangingResult = model; viewModel.SelectedItem = model; viewModel.SelectedItem.ShouldEqual(model); viewModel.SelectedItemChangedOld.ShouldBeNull(); viewModel.SelectedItemChangedNew.ShouldEqual(model); }
public void FilterShouldFilterRecords() { var model = new GridModel { Name = "test" }; var model1 = new GridModel { Name = "test1" }; var listItems = new List<GridModel> { model, model1 }; var gridViewModel = GetViewModel<GridViewModel<GridModel>>(); gridViewModel.Filter = item => item.Name == string.Empty; gridViewModel.UpdateItemsSource(listItems); gridViewModel.ItemsSource.Contains(model).ShouldBeFalse(); gridViewModel.ItemsSource.Contains(model1).ShouldBeFalse(); gridViewModel.Filter = item => true; gridViewModel.ItemsSource.Contains(model).ShouldBeTrue(); gridViewModel.ItemsSource.Contains(model1).ShouldBeTrue(); gridViewModel.Filter = item => item.Name == "test"; gridViewModel.ItemsSource.Contains(model).ShouldBeTrue(); gridViewModel.ItemsSource.Contains(model1).ShouldBeFalse(); }
public void WhenItemsSourceChangedSelectedItemShouldBeSetToNullTest() { var model = new GridModel { Name = "test" }; var listItems = new List<GridModel> { model }; var gridViewModel = GetViewModel<GridViewModel<GridModel>>(); gridViewModel.UpdateItemsSource(listItems); gridViewModel.SelectedItem = model; gridViewModel.SelectedItem.ShouldEqual(model); gridViewModel.UpdateItemsSource(null); gridViewModel.SelectedItem.ShouldBeNull(); }