Some tests for recent CurrencyManager work.
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / DataGridViewTest.cs
1 // Permission is hereby granted, free of charge, to any person obtaining
2 // a copy of this software and associated documentation files (the
3 // "Software"), to deal in the Software without restriction, including
4 // without limitation the rights to use, copy, modify, merge, publish,
5 // distribute, sublicense, and/or sell copies of the Software, and to
6 // permit persons to whom the Software is furnished to do so, subject to
7 // the following conditions:
8 // 
9 // The above copyright notice and this permission notice shall be
10 // included in all copies or substantial portions of the Software.
11 // 
12 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
13 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
14 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
15 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
16 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
17 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
18 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19 //
20 // Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
21 //
22 // Author:
23 //      Pedro Martínez Juliá <pedromj@gmail.com>
24 //
25
26
27 #if NET_2_0
28
29 using NUnit.Framework;
30 using System;
31 using System.Drawing;
32 using System.Windows.Forms;
33 using System.ComponentModel;
34 using System.Collections;
35
36 namespace MonoTests.System.Windows.Forms {
37
38         [TestFixture]
39         public class DataGridViewTest : Assertion {
40                 
41                 [SetUp]
42                 public void GetReady() {}
43
44                 [TearDown]
45                 public void Clean() {}
46
47                 [Test]
48                 public void TestDefaultValues () {
49                         DataGridView grid = new DataGridView();
50                         AssertEquals("AllowUserToAddRows property", true, grid.AllowUserToAddRows);
51                         AssertEquals("AllowUserToDeleteRows property", true, grid.AllowUserToDeleteRows);
52                         AssertEquals("AllowUserToOrderColumns property", false, grid.AllowUserToOrderColumns);
53                         AssertEquals("AllowUserToResizeColumns property", true, grid.AllowUserToResizeColumns);
54                         AssertEquals("AllowUserToResizeRows property", true, grid.AllowUserToResizeRows);
55                         AssertEquals("AlternatingRowsDefaultCellStyle property", new DataGridViewCellStyle(), grid.AlternatingRowsDefaultCellStyle);
56                         AssertEquals("AutoGenerateColumns property", true, grid.AutoGenerateColumns);
57                         AssertEquals("AutoSizeRowsMode property", DataGridViewAutoSizeRowsMode.None, grid.AutoSizeRowsMode);
58                         AssertEquals("BackColor property", Control.DefaultBackColor, grid.BackColor);
59                         AssertEquals("BackgroundColor property", SystemColors.AppWorkspace, grid.BackgroundColor);
60                         AssertEquals("BorderStyle property", BorderStyle.FixedSingle, grid.BorderStyle);
61                         AssertEquals("ClipboardCopyMode property", DataGridViewClipboardCopyMode.EnableWithAutoHeaderText, grid.ClipboardCopyMode);
62                         AssertEquals("ColumnHeadersDefaultCellStyle.BackColor property", SystemColors.Control, grid.ColumnHeadersDefaultCellStyle.BackColor);
63                         AssertEquals("ColumnHeadersDefaultCellStyle.ForeColor property", SystemColors.WindowText,  grid.ColumnHeadersDefaultCellStyle.ForeColor);
64                         AssertEquals("ColumnHeadersDefaultCellStyle.SelectionBackColor property", SystemColors.Highlight, grid.ColumnHeadersDefaultCellStyle.SelectionBackColor);
65                         AssertEquals("ColumnHeadersDefaultCellStyle.SelectionForeColor property", SystemColors.HighlightText, grid.ColumnHeadersDefaultCellStyle.SelectionForeColor);
66                         AssertEquals("ColumnHeadersDefaultCellStyle.Font property", grid.Font, grid.ColumnHeadersDefaultCellStyle.Font);
67                         AssertEquals("ColumnHeadersDefaultCellStyle.Alignment property", DataGridViewContentAlignment.MiddleLeft, grid.ColumnHeadersDefaultCellStyle.Alignment);
68                         AssertEquals("ColumnHeadersDefaultCellStyle.WrapMode property", DataGridViewTriState.True, grid.ColumnHeadersDefaultCellStyle.WrapMode);
69                         AssertEquals("ColumnHeadersHeight property", 23, grid.ColumnHeadersHeight);
70                         AssertEquals("ColumnHeadersHeightSizeMode property", DataGridViewColumnHeadersHeightSizeMode.EnableResizing, grid.ColumnHeadersHeightSizeMode);
71                         AssertEquals("ColumnHeadersVisible property", true, grid.ColumnHeadersVisible);
72                         AssertEquals("DataMember property", String.Empty, grid.DataMember);
73                         AssertEquals("DefaultCellStyle.BackColor property", SystemColors.Control, grid.DefaultCellStyle.BackColor);
74                         AssertEquals("DefaultCellStyle.ForeColor property", SystemColors.WindowText,  grid.DefaultCellStyle.ForeColor);
75                         AssertEquals("DefaultCellStyle.SelectionBackColor property", SystemColors.Highlight, grid.DefaultCellStyle.SelectionBackColor);
76                         AssertEquals("DefaultCellStyle.SelectionForeColor property", SystemColors.HighlightText, grid.DefaultCellStyle.SelectionForeColor);
77                         AssertEquals("DefaultCellStyle.Font property", grid.Font, grid.DefaultCellStyle.Font);
78                         AssertEquals("DefaultCellStyle.Alignment property", DataGridViewContentAlignment.MiddleLeft, grid.DefaultCellStyle.Alignment);
79                         AssertEquals("DefaultCellStyle.WrapMode property", DataGridViewTriState.True, grid.DefaultCellStyle.WrapMode);
80                         AssertEquals("EditMode property", DataGridViewEditMode.EditOnKeystrokeOrF2, grid.EditMode);
81                         AssertEquals("Font property", Control.DefaultFont, grid.Font);
82                         AssertEquals("ForeColor property", Control.DefaultForeColor, grid.ForeColor);
83                         AssertEquals("GridColor property", Color.FromKnownColor(KnownColor.ControlDarkDark), grid.GridColor);
84                         AssertEquals("MultiSelect property", true, grid.MultiSelect);
85                         AssertEquals("NewRowIndex property", grid.Rows.Count - 1, grid.NewRowIndex);
86                         AssertEquals("Padding property", Padding.Empty, grid.Padding);
87                         AssertEquals("ReadOnly property", false, grid.ReadOnly);
88                         AssertEquals("RowHeadersVisible property", true, grid.RowHeadersVisible);
89                         AssertEquals("RowHeadersWidth property", 43, grid.RowHeadersWidth);
90                         AssertEquals("SelectionMode property", DataGridViewSelectionMode.RowHeaderSelect, grid.SelectionMode);
91                         AssertEquals("ShowCellErrors property", true, grid.ShowCellErrors);
92                         AssertEquals("ShowEditingIcon property", true, grid.ShowEditingIcon);
93                         AssertEquals("UserSetCursor property", Cursor.Current, grid.UserSetCursor);
94                         AssertEquals("VirtualMode property", false, grid.VirtualMode);
95                 }
96
97                 #region AutoSizeColumnsModeExceptions
98
99                 [Test]
100                 [ExpectedException(typeof(InvalidEnumArgumentException))]
101                 public void TestAutoSizeColumnsModeInvalidEnumArgumentException () {
102                         DataGridView grid = new DataGridView();
103                         grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill | DataGridViewAutoSizeColumnsMode.None;
104                 }
105
106                 [Test]
107                 [ExpectedException(typeof(InvalidOperationException))]
108                 public void TestAutoSizeColumnsModeInvalidOperationException1 () {
109                         DataGridView grid = new DataGridView();
110                         grid.ColumnHeadersVisible = false;
111                         DataGridViewColumn col = new DataGridViewColumn();
112                         col.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet;
113                         grid.Columns.Add(col);
114                         grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader;
115                 }
116
117                 [Test]
118                 [ExpectedException(typeof(InvalidOperationException))]
119                 public void TestAutoSizeColumnsModeInvalidOperationException2 () {
120                         DataGridView grid = new DataGridView();
121                         DataGridViewColumn col = new DataGridViewColumn();
122                         col.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet;
123                         col.Frozen = true;
124                         grid.Columns.Add(col);
125                         grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
126                 }
127
128                 #endregion
129
130                 #region AutoSizeRowsModeExceptions
131
132                 [Test]
133                 [ExpectedException(typeof(InvalidEnumArgumentException))]
134                 public void TestAutoSizeRowsModeInvalidEnumArgumentException () {
135                         DataGridView grid = new DataGridView();
136                         grid.AutoSizeRowsMode = (DataGridViewAutoSizeRowsMode) 4;
137                 }
138
139                 [Test]
140                 [ExpectedException(typeof(InvalidOperationException))]
141                 public void TestAutoSizeRowsModeInvalidOperationException1 () {
142                         DataGridView grid = new DataGridView();
143                         grid.RowHeadersVisible = false;
144                         grid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllHeaders;
145                 }
146
147                 [Test]
148                 [ExpectedException(typeof(InvalidOperationException))]
149                 public void TestAutoSizeRowsModeInvalidOperationException2 () {
150                         DataGridView grid = new DataGridView();
151                         grid.RowHeadersVisible = false;
152                         grid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedHeaders;
153                 }
154
155                 #endregion
156
157                 [Test]
158                 [ExpectedException(typeof(ArgumentException))]
159                 public void TestBackgroundColorArgumentException () {
160                         DataGridView grid = new DataGridView();
161                         grid.BackgroundColor = Color.Empty;
162                 }
163
164                 [Test]
165                 [ExpectedException(typeof(InvalidEnumArgumentException))]
166                 public void TestBorderStyleInvalidEnumArgumentException () {
167                         DataGridView grid = new DataGridView();
168                         grid.BorderStyle = BorderStyle.FixedSingle | BorderStyle.Fixed3D;
169                 }
170
171                 [Test]
172                 [ExpectedException(typeof(ArgumentException))]
173                 public void TestColumnCountArgumentException () {
174                         DataGridView grid = new DataGridView();
175                         grid.ColumnCount = -1;
176                 }
177
178                 [Test]
179                 [ExpectedException(typeof(InvalidOperationException))]
180                 public void TestColumnCountInvalidOperationException () {
181                         DataGridView grid = new DataGridView();
182                         grid.DataSource = new ArrayList();
183                         grid.ColumnCount = 0;
184                 }
185
186                 [Test]
187                 [ExpectedException(typeof(ArgumentException))]
188                 public void TestColumnHeadersHeightArgumentException () {
189                         DataGridView grid = new DataGridView();
190                         grid.ColumnHeadersHeight = 3;
191                 }
192
193                 [Test]
194                 [ExpectedException(typeof(InvalidEnumArgumentException))]
195                 public void TestColumnHeadersHeightSizeModeInvalidEnumArgumentException () {
196                         DataGridView grid = new DataGridView();
197                         grid.ColumnHeadersHeightSizeMode = (DataGridViewColumnHeadersHeightSizeMode) 3;
198                 }
199
200                 [Test]
201                 [ExpectedException(typeof(ArgumentException))]
202                 public void TestCurrentCellArgumentException () {
203                         DataGridView grid = new DataGridView();
204                         grid.CurrentCell = new DataGridViewTextBoxCell();
205                 }
206
207                 [Test]
208                 [ExpectedException(typeof(ArgumentException))]
209                 public void TestRowHeadersWidthArgumentException () {
210                         DataGridView grid = new DataGridView();
211                         grid.RowHeadersWidth = 3;
212                 }
213
214                 [Test]
215                 [ExpectedException(typeof(InvalidEnumArgumentException))]
216                 public void TestDataGridViewRowHeadersWidthSizeModeInvalidEnumArgumentException () {
217                         DataGridView grid = new DataGridView();
218                         grid.RowHeadersWidthSizeMode = (DataGridViewRowHeadersWidthSizeMode) 5;
219                 }
220
221                 [Test]
222                 [ExpectedException(typeof(InvalidEnumArgumentException))]
223                 public void TestScrollBarsInvalidEnumArgumentException () {
224                         DataGridView grid = new DataGridView();
225                         grid.ScrollBars = (ScrollBars) 4;
226                 }
227
228                 [Test]
229                 [ExpectedException(typeof(InvalidEnumArgumentException))]
230                 public void TestSelectionModeInvalidEnumArgumentException () {
231                         DataGridView grid = new DataGridView();
232                         grid.SelectionMode = (DataGridViewSelectionMode) 5;
233                 }
234
235                 [Test]
236                 [ExpectedException(typeof(InvalidEnumArgumentException))]
237                 public void TestAutoResizeRowsInvalidEnumArgumentException () {
238                         DataGridView grid = new DataGridView();
239                         grid.AutoResizeRows((DataGridViewAutoSizeRowsMode) 4);
240                 }
241
242                 [Test]
243                 [ExpectedException(typeof(InvalidOperationException))]
244                 public void TestAutoResizeRowsInvalidOperationException1 () {
245                         DataGridView grid = new DataGridView();
246                         grid.RowHeadersVisible = false;
247                         grid.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllHeaders);
248                 }
249
250                 [Test]
251                 [ExpectedException(typeof(InvalidOperationException))]
252                 public void TestAutoResizeRowsInvalidOperationException2 () {
253                         DataGridView grid = new DataGridView();
254                         grid.RowHeadersVisible = false;
255                         grid.AutoResizeRows(DataGridViewAutoSizeRowsMode.DisplayedHeaders);
256                 }
257
258                 [Test]
259                 [ExpectedException(typeof(ArgumentException))]
260                 public void TestAutoResizeRowsArgumentException () {
261                         DataGridView grid = new DataGridView();
262                         grid.AutoResizeRows(DataGridViewAutoSizeRowsMode.None);
263                 }
264
265                 /*
266                 [Test]
267                 [ExpectedException(typeof(Exception))]
268                 public void TestException () {
269                         ConcreteCollection myCollection;
270                         myCollection = new ConcreteCollection();
271                         ....
272                         AssertEquals ("#UniqueID", expected, actual);
273                         ....
274                         Fail ("Message");
275                 }
276                 */
277
278         }
279
280 }
281
282 #endif