2010-04-06 Jb Evain <jbevain@novell.com>
[mcs.git] / class / Managed.Windows.Forms / Test / System.Windows.Forms / DataGridViewRowCollectionTest.cs
blob19fa7862ecfe501b6dabdebc1c1c2609077c3bd5
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.
20 // Copyright (c) 2007 Novell, Inc. (http://www.novell.com)
22 // Author:
23 // Rolf Bjarne Kvinge (RKvinge@novell.com)
27 #if NET_2_0
29 using NUnit.Framework;
30 using System;
31 using System.Drawing;
32 using System.Windows.Forms;
33 using System.ComponentModel;
34 using System.Collections;
36 namespace MonoTests.System.Windows.Forms
39 [TestFixture]
40 public class DataGridViewRowCollectionTest : TestHelper
42 private DataGridView CreateAndFill ()
44 DataGridView dgv = DataGridViewCommon.CreateAndFill ();
45 DataGridViewRow row = new DataGridViewRow ();
46 row.Cells.Add (new DataGridViewComboBoxCell ());
47 row.Cells.Add (new DataGridViewComboBoxCell ());
48 dgv.Rows.Add (row);
49 return dgv;
52 [Test]
53 public void ToStringTest ()
55 Assert.AreEqual ("System.Windows.Forms.DataGridViewRowCollection", new DataGridViewRowCollection (null).ToString (), "A");
57 using (DataGridView dgv = CreateAndFill ()) {
58 Assert.AreEqual ("System.Windows.Forms.DataGridViewRowCollection", dgv.Rows.ToString (), "B");
63 [Test]
64 public void CtorTest ()
66 DataGridViewRowCollection rc;
68 rc = new DataGridViewRowCollection (null);
69 Assert.AreEqual (0, rc.Count, "#01");
71 using (DataGridView dgv = new DataGridView ()) {
72 rc = new DataGridViewRowCollection (dgv);
73 Assert.AreEqual (0, rc.Count, "#02");
74 Assert.IsTrue (rc != dgv.Rows, "#03");
78 [Test]
79 [NUnit.Framework.Category ("NotWorking")] // Don't currently support shared rows
80 public void AddTest ()
82 DataGridViewRow row;
83 DataGridViewCell cell;
85 using (DataGridView dgv = new DataGridView ()) {
86 dgv.Columns.Add ("a", "A");
87 row = new DataGridViewRow ();
88 dgv.Rows.Add (row);
89 Assert.AreEqual (-1, row.Index, "#01");
92 using (DataGridView dgv = new DataGridView ()) {
93 dgv.Columns.Add ("a", "A");
94 row = new DataGridViewRow ();
95 cell = new DataGridViewTextBoxCell ();
96 cell.Value = "abc";
97 row.Cells.Add (cell);
98 dgv.Rows.Add (row);
99 Assert.AreEqual (0, row.Index, "#02");
103 [Test]
104 [ExpectedException (typeof (InvalidOperationException))]
105 public void RemoveAtNewRowException ()
107 DataGridView dgv = new DataGridView ();
108 dgv.Columns.Add ("A", "A");
109 dgv.Rows.RemoveAt (0);
112 [Test]
113 [ExpectedException (typeof (InvalidOperationException))]
114 public void RemoveNewRowException ()
116 DataGridView dgv = new DataGridView ();
117 dgv.Columns.Add ("A", "A");
118 dgv.Rows.Remove (dgv.Rows[0]);
122 [Test] // bug #442181
123 public void RemoveNewRowClear ()
125 DataGridView dgv = new DataGridView ();
126 dgv.Columns.Add ("A", "A");
127 dgv.Rows.Clear ();
129 Assert.AreEqual (1, dgv.Rows.Count, "A1");
131 // This was crashing in the bug
132 dgv.Sort (dgv.Columns[0], ListSortDirection.Ascending);
135 [Test] // bug #448005
136 public void ClearRows ()
138 DataGridView dgv = new DataGridView ();
139 dgv.Columns.Add ("A", "A");
140 dgv.Columns.Add ("A2", "A2");
142 dgv.Rows.Add (1, 2);
143 dgv.Rows.Add (1, 2);
144 dgv.Rows.Add (1, 2);
145 dgv.Rows.Add (1, 2);
146 dgv.Rows.Add (1, 2);
148 dgv.Rows.Clear ();
150 Assert.AreEqual (1, dgv.Rows.Count, "A1");
154 #endif