public void SortingWithLocalizationTest() { ObservableCollection<object> list = new ObservableCollection<object>() { "al:tinda", "ch:aque", "Cz:ech", "co:te", "hi:zli", "i:erigiyle" }; PagedCollectionView view = new PagedCollectionView(list); // first test with the default InvariantCulture to see that it sorts in the correct order view.Culture = CultureInfo.InvariantCulture; view.SortDescriptions.Add(new SortDescription("", ListSortDirection.Descending)); Assert.AreEqual(view[0], "i:erigiyle"); Assert.AreEqual(view[1], "hi:zli"); Assert.AreEqual(view[2], "Cz:ech"); Assert.AreEqual(view[3], "co:te"); Assert.AreEqual(view[4], "ch:aque"); Assert.AreEqual(view[5], "al:tinda"); // now test with a Slovik culture applied to make sure that it sorts in the correct order view.Culture = new CultureInfo("sk-SK"); view.Refresh(); Assert.AreEqual(view[0], "i:erigiyle"); Assert.AreEqual(view[1], "ch:aque"); Assert.AreEqual(view[2], "hi:zli"); Assert.AreEqual(view[3], "Cz:ech"); Assert.AreEqual(view[4], "co:te"); Assert.AreEqual(view[5], "al:tinda"); // now remove the second item and re-insert to verify that sorting with the CultureInfo // allows it to be placed back in the same index view.RemoveAt(1); string str = "ch:aque"; list.Add(str); Assert.AreEqual(str, view[1]); }
public void ResetWithListBoxTest() { ObservableCollection<int> oc = new ObservableCollection<int>() { 1, 2, 4, 5 }; PagedCollectionView cv = new PagedCollectionView(oc); ListBox lb = new ListBox(); lb.ItemsSource = cv; this.CreateAsyncTask( lb, delegate { Assert.AreEqual(4, lb.Items.Count); cv.Refresh(); Assert.AreEqual(4, lb.Items.Count); oc.Insert(2, 3); Assert.AreEqual(5, lb.Items.Count); cv.Refresh(); Assert.AreEqual(5, lb.Items.Count); }); EnqueueTestComplete(); }
public void OnCollectionChangedTest() { List<EditableTestClass> efbList = new List<EditableTestClass>(); ObservableCollection<TestClass> fbCollection = new ObservableCollection<TestClass>(); PagedCollectionView pcv1 = new PagedCollectionView(efbList); PagedCollectionView pcv2 = new PagedCollectionView(fbCollection); pcv1.CollectionChanged += new NotifyCollectionChangedEventHandler(this.PagedCollectionViewCollectionChanged); pcv2.CollectionChanged += new NotifyCollectionChangedEventHandler(this.PagedCollectionViewCollectionChanged); this._expectedAction = NotifyCollectionChangedAction.Reset; this.AssertExpectedEvent(delegate { pcv1.Refresh(); }); this._expectedAction = NotifyCollectionChangedAction.Reset; this.AssertExpectedEvent(delegate { fbCollection.Clear(); }); this._expectedAction = NotifyCollectionChangedAction.Add; this.AssertExpectedEvent(delegate { fbCollection.Add(new TestClass()); }); EditableTestClass efb; this._expectedAction = NotifyCollectionChangedAction.Add; this.AssertExpectedEvent(delegate { efb = pcv1.AddNew() as EditableTestClass; }); pcv1.CommitNew(); // Add, then Cancel to fire a Remove this._expectedAction = NotifyCollectionChangedAction.Add; this.AssertExpectedEvent(delegate { pcv1.AddNew(); }); this._expectedAction = NotifyCollectionChangedAction.Remove; this.AssertExpectedEvent(delegate { pcv1.CancelNew(); }); // Set PageSize to 1 to Reset this._expectedAction = NotifyCollectionChangedAction.Reset; this.AssertExpectedEvent(delegate { pcv1.PageSize = 1; }); // Remove an Item this._expectedAction = NotifyCollectionChangedAction.Remove; this.AssertExpectedEvent(delegate { pcv1.RemoveAt(0); }); pcv2.CollectionChanged -= new NotifyCollectionChangedEventHandler(this.PagedCollectionViewCollectionChanged); pcv1.CollectionChanged -= new NotifyCollectionChangedEventHandler(this.PagedCollectionViewCollectionChanged); }
public void RefreshWithNonIListSourceTest() { TestEnumerableCollection list = new TestEnumerableCollection(); list.Add(new TestClass { IntProperty = 1, StringProperty = "Test 1" }); list.Add(new TestClass { IntProperty = 2, StringProperty = "Test 2" }); PagedCollectionView pcv = new PagedCollectionView(list); pcv.SortDescriptions.Add(new SortDescription("IntProperty", ListSortDirection.Ascending)); Assert.AreEqual(2, pcv.Count); // add items to list and Refresh list.Add(new TestClass() { IntProperty = 3, StringProperty = "Test 3" }); list.Add(new TestClass() { IntProperty = 4, StringProperty = "Test 4" }); pcv.Refresh(); Assert.AreEqual(4, pcv.Count); // remove items from list and Refresh list.RemoveAt(0); list.RemoveAt(0); pcv.Refresh(); Assert.AreEqual(2, pcv.Count); }
public void CannotRefreshTest() { ObservableCollection<TestClass> collection = new ObservableCollection<TestClass>() { new TestClass() }; PagedCollectionView pcv = new PagedCollectionView(collection); // show that we will throw an exception if we try to change the PageSize while adding pcv.AddNew(); PagedCollectionViewTest.AssertExpectedException( new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, PagedCollectionViewResources.OperationNotAllowedDuringAddOrEdit, "Refresh")), delegate { pcv.Refresh(); }); pcv.CancelNew(); // show that we will throw an exception if we try to change the PageSize while editing pcv.EditItem(pcv[0]); PagedCollectionViewTest.AssertExpectedException( new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, PagedCollectionViewResources.OperationNotAllowedDuringAddOrEdit, "Refresh")), delegate { pcv.Refresh(); }); }