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:
9 // The above copyright notice and this permission notice shall be
10 // included in all copies or substantial portions of the Software.
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) 2005 Novell, Inc. (http://www.novell.com)
23 // Jordi Mas i Hernandez <jordi@ximian.com>
28 using System.Collections;
29 using System.ComponentModel;
31 using System.Windows.Forms;
33 using NUnit.Framework;
35 namespace MonoTests.System.Windows.Forms
38 public class GridTableStylesCollectionTest : TestHelper
40 private bool eventhandled;
41 private object Element;
42 private CollectionChangeAction Action;
46 public void TestDefaultValues ()
48 DataGrid grid = new DataGrid ();
49 GridTableStylesCollection sc = grid.TableStyles;
51 Assert.AreEqual (false, sc.IsSynchronized, "IsSynchronized property");
52 Assert.AreEqual (0, sc.Count, "Count");
53 Assert.AreEqual (sc, sc.SyncRoot, "SyncRoot property");
54 Assert.AreEqual (false, ((IList)sc).IsFixedSize, "IsFixedSize property");
55 Assert.AreEqual (false, sc.IsReadOnly, "IsReadOnly property");
59 public void TestMappingNameChanged ()
61 DataGrid grid = new DataGrid ();
62 GridTableStylesCollection sc = grid.TableStyles;
63 sc.CollectionChanged += new CollectionChangeEventHandler (OnCollectionEventHandler);
66 DataGridTableStyle ts = new DataGridTableStyle ();
67 ts.MappingName = "Table1";
70 ts.MappingName = "Table2";
72 Assert.AreEqual (true, eventhandled, "A1");
73 Assert.AreEqual (null, Element, "A2");
74 Assert.AreEqual (CollectionChangeAction.Refresh, Action, "A3");
78 // "The TableStyles collection already has a TableStyle with this mapping name"
79 // There is a TODO in DataGrid about allowing TableStyles to have the same mapping name.
81 [NUnit.Framework.Category ("NotWorking")]
82 public void TestAdd ()
84 DataGrid grid = new DataGrid ();
85 GridTableStylesCollection sc = grid.TableStyles;
86 sc.CollectionChanged += new CollectionChangeEventHandler (OnCollectionEventHandler);
90 DataGridTableStyle ts = new DataGridTableStyle ();
91 ts.MappingName = "Table1";
93 Assert.AreEqual (true, eventhandled, "A1");
94 Assert.AreEqual (ts, Element, "A2");
95 Assert.AreEqual (CollectionChangeAction.Add, Action, "A3");
99 sc.AddRange (new DataGridTableStyle [] {new DataGridTableStyle (), new DataGridTableStyle ()});
100 Assert.AreEqual (true, eventhandled, "A4");
101 Assert.AreEqual (null, Element, "A5");
102 Assert.AreEqual (CollectionChangeAction.Refresh, Action, "A6");
106 public void TestAddRange ()
108 DataGrid grid = new DataGrid ();
109 GridTableStylesCollection sc = grid.TableStyles;
110 sc.CollectionChanged += new CollectionChangeEventHandler (OnCollectionEventHandler);
113 DataGridTableStyle ts1 = new DataGridTableStyle ();
114 ts1.MappingName = "Table1";
116 DataGridTableStyle ts2 = new DataGridTableStyle ();
117 ts2.MappingName = "Table2";
118 sc.AddRange (new DataGridTableStyle[] {ts1, ts2});
120 Assert.AreEqual (true, eventhandled, "A1");
121 Assert.AreEqual (null, Element, "A2");
122 Assert.AreEqual (CollectionChangeAction.Refresh, Action, "A3");
123 Assert.AreEqual (1, times, "A4");
127 public void TestRemove ()
129 DataGrid grid = new DataGrid ();
130 GridTableStylesCollection sc = grid.TableStyles;
131 sc.CollectionChanged += new CollectionChangeEventHandler (OnCollectionEventHandler);
134 DataGridTableStyle ts1 = new DataGridTableStyle ();
135 ts1.MappingName = "Table1";
138 DataGridTableStyle ts2 = new DataGridTableStyle ();
139 ts2.MappingName = "Table2";
142 DataGridTableStyle ts3 = new DataGridTableStyle ();
143 ts3.MappingName = "Table3";
148 Assert.AreEqual (true, eventhandled, "A1");
149 Assert.AreEqual (ts2, Element, "A2");
150 Assert.AreEqual (CollectionChangeAction.Remove, Action, "A3");
151 Assert.AreEqual (2, sc.Count, "A4");
155 Assert.AreEqual (true, eventhandled, "A5");
156 Assert.AreEqual (ts1, Element, "A6");
157 Assert.AreEqual (CollectionChangeAction.Remove, Action, "A7");
158 Assert.AreEqual (1, sc.Count, "A8");
162 Assert.AreEqual (null, Element, "A9");
163 Assert.AreEqual (CollectionChangeAction.Refresh, Action, "A10");
168 public void TestIndexContains ()
170 DataGrid grid = new DataGrid ();
171 GridTableStylesCollection sc = grid.TableStyles;
172 sc.CollectionChanged += new CollectionChangeEventHandler (OnCollectionEventHandler);
175 DataGridTableStyle ts1 = new DataGridTableStyle ();
176 ts1.MappingName = "Table1";
179 DataGridTableStyle ts2 = new DataGridTableStyle ();
180 ts2.MappingName = "Table2";
183 DataGridTableStyle ts3 = new DataGridTableStyle ();
184 ts3.MappingName = "Table3";
188 IList ilist = (IList) sc;
189 Assert.AreEqual (1, ilist.IndexOf (ts2), "A1");
190 Assert.AreEqual (false, sc.Contains ("nothing"), "A2");
191 Assert.AreEqual (true, sc.Contains (ts3), "A3");
194 private void ResetEventData ()
197 eventhandled = false;
199 Action = (CollectionChangeAction) 0;
202 //private void OnEventHandler (object sender, EventArgs e)
204 // eventhandled = true;
207 private void OnCollectionEventHandler (object sender, CollectionChangeEventArgs e)