public void CurrentCellTrackingTest() { // Create a large enough data list, so that there will be scroll bar. var dataList = CreateTestDataList(100); DataGrid dataGrid; using (TestWindow.Show(dataList, out dataGrid)) { ICurrentCellService target = new DataGridCurrentCellService(); ((IUIService)target).AttachToElement(dataGrid); Assert.IsNull(target.CurrentCell.Item); ExpectNonCancelableEvents(target, () => { dataGrid.CurrentCell = new DataGridCellInfo(dataList[1], dataGrid.Columns[0]); }); Assert.AreSame(dataList[1], target.CurrentCell.Item); Assert.AreEqual(0, target.CurrentCell.CellIndex); ExpectNonCancelableEvents(target, () => { dataGrid.CurrentCell = new DataGridCellInfo(dataList[5], dataGrid.Columns[2]); }); Assert.AreSame(dataList[5], target.CurrentCell.Item); Assert.AreEqual(2, target.CurrentCell.CellIndex); ExpectNoEvents(target, () => { dataGrid.CurrentColumn.DisplayIndex = 0; }); Assert.AreEqual(0, target.CurrentCell.CellIndex); } }
public void MoveToTopTest() { // Create a large enough data list, so that there will be scroll bar. var dataList = CreateTestDataList(100); DataGrid dataGrid; using (TestWindow.Show(dataList, out dataGrid)) { ICurrentCellService target = new DataGridCurrentCellService(); ((IUIService)target).AttachToElement(dataGrid); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveToTop()); }); Assert.AreEqual(dataList[0], dataGrid.CurrentItem); ExpectNoEvents(target, () => { Assert.IsTrue(target.MoveToTop()); }); var lastItem = dataList[dataList.Count - 1]; dataGrid.ScrollIntoView(lastItem); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveToBottom()); }); Assert.AreEqual(lastItem, dataGrid.CurrentItem); ExpectNoEvents(target, () => { Assert.IsTrue(target.MoveToBottom()); }); dataGrid.ScrollIntoView(dataList[0]); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveToTop()); }); Assert.AreEqual(dataList[0], dataGrid.CurrentItem); } }
public void DataGridCurrentCellServiceConstructorTest() { // Create a large enough data list, so that there will be scroll bar. var dataList = CreateTestDataList(100); DataGrid dataGrid; using (TestWindow.Show(dataList, out dataGrid)) { ICurrentCellService target = new DataGridCurrentCellService(); ((IUIService)target).AttachToElement(dataGrid); Assert.IsNull(target.CurrentCell.Item); dataGrid.CurrentCell = new DataGridCellInfo(dataList[1], dataGrid.Columns[0]); target = new DataGridCurrentCellService(); ((IUIService)target).AttachToElement(dataGrid); Assert.AreSame(dataList[1], target.CurrentCell.Item); dataGrid.ScrollIntoView(dataList[70]); dataGrid.Dispatcher.Invoke(DispatcherPriority.Render, new Action(() => { dataGrid.CurrentCell = new DataGridCellInfo(dataList[70], dataGrid.Columns[0]); })); target = new DataGridCurrentCellService(); ((IUIService)target).AttachToElement(dataGrid); Assert.AreSame(dataList[70], target.CurrentCell.Item); } }
//[TestMethod()] public void CellVisibilityTest() { // Create a large enough data list, so that there will be scroll bar. var dataList = CreateTestDataList(100); DataGrid dataGrid; using (TestWindow.Show(dataList, out dataGrid)) { ICurrentCellService target = new DataGridCurrentCellService(); ((IUIService)target).AttachToElement(dataGrid); } Assert.Inconclusive("I'm not sure this should be implemented. TBD when required."); }
public void MoveUpTest() { // Create a large enough data list, so that there will be a scroll bar. var dataList = CreateTestDataList(100); DataGrid dataGrid; using (TestWindow.Show(dataList, out dataGrid)) { int currentItemIndex = dataList.Count - 1; dataGrid.ScrollIntoView(dataList[currentItemIndex], dataGrid.Columns[0]); dataGrid.CurrentCell = new DataGridCellInfo(dataList[currentItemIndex], dataGrid.Columns[0]); ICurrentCellService target = new DataGridCurrentCellService(); ((IUIService)target).AttachToElement(dataGrid); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveUp(1)); }); currentItemIndex--; Assert.AreSame(dataList[currentItemIndex], target.CurrentCell.Item); Assert.AreSame(dataGrid.CurrentItem, target.CurrentCell.Item); Assert.IsNotNull(target.CurrentCell.Item); Assert.AreSame(dataGrid.ColumnFromDisplayIndex(0), dataGrid.CurrentCell.Column); ExpectNoEvents(target, () => { Assert.IsFalse(target.MoveUp(40)); }); currentItemIndex -= 40; dataGrid.ScrollIntoView(dataList[currentItemIndex]); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveUp(40)); }); Assert.AreSame(dataList[currentItemIndex], target.CurrentCell.Item); Assert.AreSame(dataGrid.CurrentItem, target.CurrentCell.Item); Assert.IsNotNull(target.CurrentCell.Item); Assert.AreSame(dataGrid.ColumnFromDisplayIndex(0), dataGrid.CurrentCell.Column); dataGrid.CurrentColumn = dataGrid.ColumnFromDisplayIndex(2); currentItemIndex -= 10; dataGrid.ScrollIntoView(dataList[currentItemIndex]); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveUp(10)); }); Assert.AreSame(dataList[currentItemIndex], target.CurrentCell.Item); Assert.AreSame(dataGrid.CurrentItem, target.CurrentCell.Item); Assert.IsNotNull(target.CurrentCell.Item); Assert.AreSame(dataGrid.ColumnFromDisplayIndex(2), dataGrid.CurrentCell.Column); ExpectNoEvents(target, () => { Assert.IsFalse(target.MoveUp(90)); }); Assert.IsNotNull(target.CurrentCell.Item); } }
public void MoveDownTest() { // Create a large enough data list, so that there will be scroll bar. var dataList = CreateTestDataList(100); DataGrid dataGrid; using (TestWindow.Show(dataList, out dataGrid)) { ICurrentCellService target = new DataGridCurrentCellService(); ((IUIService)target).AttachToElement(dataGrid); // Move down, when cell was not yet set, should move to the first cell. ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveDown(1)); }); Assert.AreSame(dataList[0], target.CurrentCell.Item); Assert.AreSame(dataGrid.CurrentItem, target.CurrentCell.Item); Assert.IsNotNull(target.CurrentCell.Item); Assert.AreSame(dataGrid.ColumnFromDisplayIndex(0), dataGrid.CurrentCell.Column); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveDown(5)); }); Assert.AreSame(dataList[5], target.CurrentCell.Item); Assert.AreSame(dataList[5], dataGrid.CurrentCell.Item); // Verify an unloaded item cannot be reached. ExpectNoEvents(target, () => { Assert.IsFalse(target.MoveDown(40)); }); // Now force loading the target item by scrolling to it, and verify the service can move to it. dataGrid.ScrollIntoView(dataList[45]); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveDown(40)); }); Assert.AreSame(dataList[45], dataGrid.CurrentCell.Item); // Scroll to the last item in the list. dataGrid.ScrollIntoView(dataList[dataList.Count - 1]); // Try to move beyond the last item in the list. ExpectNoEvents(target, () => { Assert.IsFalse(target.MoveDown((uint)dataList.Count + 1)); }); Assert.IsNotNull(target.CurrentCell.Item); // Move to the last item Assert.IsTrue(target.MoveDown((uint)(dataGrid.Items.Count - 45 - 1))); // Try to move one more item down ExpectNoEvents(target, () => { Assert.IsFalse(target.MoveDown(1)); }); } }
public void MoveToTest() { // Create a large enough data list, so that there will be scroll bar. var dataList = CreateTestDataList(100); DataGrid dataGrid; using (TestWindow.Show(dataList, out dataGrid)) { ICurrentCellService target = new DataGridCurrentCellService(); ((IUIService)target).AttachToElement(dataGrid); List <Tuple <int, int> > cellPositions = new List <Tuple <int, int> >() { new Tuple <int, int>(5, 1), new Tuple <int, int>(1, 0), new Tuple <int, int>(10, 2) }; foreach (var cellPosition in cellPositions) { Trace.WriteLine("Trying cell position " + cellPosition); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveTo(new UniversalCellInfo(dataList[cellPosition.Item1], cellPosition.Item2))); }); Assert.AreEqual(dataGrid.Items[cellPosition.Item1], dataGrid.CurrentCell.Item, "Failed for cell position " + cellPosition); Assert.AreEqual(dataGrid.Items[cellPosition.Item1], dataGrid.CurrentItem, "Failed for cell position " + cellPosition); Assert.AreEqual(cellPosition.Item2, dataGrid.CurrentCell.Column.DisplayIndex, "Failed for cell position " + cellPosition); } // Move to an invalid column ExpectNoEvents(target, () => { Assert.IsFalse(target.MoveTo(new UniversalCellInfo(dataList[4], 3))); }); Assert.AreEqual(dataGrid.CurrentItem, target.CurrentCell.Item); Assert.AreEqual(dataGrid.CurrentColumn.DisplayIndex, target.CurrentCell.CellIndex); } }
public void HorizontalMoveTest() { // Create a large enough data list, so that there will be scroll bar. var dataList = CreateTestDataList(100); DataGrid dataGrid; using (TestWindow.Show(dataList, out dataGrid)) { dataGrid.CurrentCell = new DataGridCellInfo(dataList[0], dataGrid.Columns[0]); ICurrentCellService target = new DataGridCurrentCellService(); ((IUIService)target).AttachToElement(dataGrid); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveRight(1)); }); Assert.AreEqual(1, target.CurrentCell.CellIndex); Assert.AreEqual(dataGrid.CurrentCell.Column.DisplayIndex, target.CurrentCell.CellIndex); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveRight(1)); }); Assert.AreEqual(dataGrid.CurrentCell.Column.DisplayIndex, target.CurrentCell.CellIndex); ExpectNoEvents(target, () => { Assert.IsFalse(target.MoveRight(1)); }); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveLeft(1)); }); Assert.AreEqual(1, target.CurrentCell.CellIndex); Assert.AreEqual(dataGrid.CurrentCell.Column.DisplayIndex, target.CurrentCell.CellIndex); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveLeft(1)); }); Assert.AreEqual(0, target.CurrentCell.CellIndex); Assert.AreEqual(dataGrid.CurrentCell.Column.DisplayIndex, target.CurrentCell.CellIndex); ExpectNoEvents(target, () => { Assert.IsFalse(target.MoveLeft(1)); }); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveRight(2)); }); Assert.AreEqual(2, target.CurrentCell.CellIndex); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveLeft(2)); }); Assert.AreEqual(0, target.CurrentCell.CellIndex); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveToRightMost()); }); Assert.AreEqual(2, target.CurrentCell.CellIndex); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveToLeftMost()); }); Assert.AreEqual(0, target.CurrentCell.CellIndex); // Scroll and move. dataGrid.CurrentColumn = dataGrid.Columns[0]; dataGrid.ScrollIntoView(dataList[60]); dataGrid.CurrentItem = dataList[60]; Assert.AreEqual(0, target.CurrentCell.CellIndex); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveRight(1)); }); dataGrid.CurrentColumn = dataGrid.Columns[2]; dataGrid.ScrollIntoView(dataList[10]); dataGrid.CurrentItem = dataList[10]; Assert.AreEqual(2, target.CurrentCell.CellIndex); ExpectCancelableEvents(target, () => { Assert.IsTrue(target.MoveLeft(1)); }); } }