Procházet zdrojové kódy

Added test for box selection

tznind před 4 roky
rodič
revize
0c2685bcbe
1 změnil soubory, kde provedl 84 přidání a 0 odebrání
  1. 84 0
      UnitTests/TableViewTests.cs

+ 84 - 0
UnitTests/TableViewTests.cs

@@ -140,6 +140,90 @@ namespace UnitTests {
             Assert.Equal(14,surrogate.Sum(c=>Rune.ColumnWidth(c)));
             Assert.Equal(15,surrogate.Length);
         }
+
+        [Fact]
+        public void IsSelected_MultiSelectionOn_Vertical()
+        {
+            var tableView = new TableView(){
+                Table = BuildTable(25,50),
+                MultiSelect = true
+            };
+
+            // 3 cell vertical selection
+            tableView.SetSelection(1,1,false);
+            tableView.SetSelection(1,3,true);
+
+            Assert.False(tableView.IsSelected(0,0));
+            Assert.False(tableView.IsSelected(1,0));
+            Assert.False(tableView.IsSelected(2,0));
+
+            Assert.False(tableView.IsSelected(0,1));
+            Assert.True(tableView.IsSelected(1,1));
+            Assert.False(tableView.IsSelected(2,1));
+
+            Assert.False(tableView.IsSelected(0,2));
+            Assert.True(tableView.IsSelected(1,2));
+            Assert.False(tableView.IsSelected(2,2));
+
+            Assert.False(tableView.IsSelected(0,3));
+            Assert.True(tableView.IsSelected(1,3));
+            Assert.False(tableView.IsSelected(2,3));
+
+            Assert.False(tableView.IsSelected(0,4));
+            Assert.False(tableView.IsSelected(1,4));
+            Assert.False(tableView.IsSelected(2,4));
+        }
+
+
+        [Fact]
+        public void IsSelected_MultiSelectionOn_Horizontal()
+        {
+            var tableView = new TableView(){
+                Table = BuildTable(25,50),
+                MultiSelect = true
+            };
+
+            // 2 cell horizontal selection
+            tableView.SetSelection(1,0,false);
+            tableView.SetSelection(2,0,true);
+
+            Assert.False(tableView.IsSelected(0,0));
+            Assert.True(tableView.IsSelected(1,0));
+            Assert.True(tableView.IsSelected(2,0));
+            Assert.False(tableView.IsSelected(3,0));
+
+            Assert.False(tableView.IsSelected(0,1));
+            Assert.False(tableView.IsSelected(1,1));
+            Assert.False(tableView.IsSelected(2,1));
+            Assert.False(tableView.IsSelected(3,1));
+        }
+
+
+
+        [Fact]
+        public void IsSelected_MultiSelectionOn_BoxSelection()
+        {
+            var tableView = new TableView(){
+                Table = BuildTable(25,50),
+                MultiSelect = true
+            };
+
+            // 4 cell horizontal in box 2x2
+            tableView.SetSelection(0,0,false);
+            tableView.SetSelection(1,1,true);
+
+            Assert.True(tableView.IsSelected(0,0));
+            Assert.True(tableView.IsSelected(1,0));
+            Assert.False(tableView.IsSelected(2,0));
+
+            Assert.True(tableView.IsSelected(0,1));
+            Assert.True(tableView.IsSelected(1,1));
+            Assert.False(tableView.IsSelected(2,1));
+
+            Assert.False(tableView.IsSelected(0,2));
+            Assert.False(tableView.IsSelected(1,2));
+            Assert.False(tableView.IsSelected(2,2));
+        }
         
         /// <summary>
 		/// Builds a simple table of string columns with the requested number of columns and rows