In .:
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / CheckedListBoxTest.cs
1 //
2 // Copyright (c) 2005 Novell, Inc.
3 //
4 // Authors:
5 //              Ritvik Mayank (mritvik@novell.com)
6 //
7
8 using System;
9 using System.Collections;
10 using System.Windows.Forms;
11 using System.Drawing;
12 using System.Reflection;
13 using NUnit.Framework;
14
15 namespace MonoTests.System.Windows.Forms
16 {
17         [TestFixture]
18         public class CheckedListBoxTest
19         {
20                 [Test]
21                 public void CheckedListBoxPropertyTest () 
22                 {
23                         Form myform = new Form ();
24                         myform.Visible = true;
25                         CheckedListBox mychklistbox = new CheckedListBox ();
26                         ArrayList checked_items = new ArrayList (2);
27                         ArrayList checked_pos = new ArrayList (2);
28                         mychklistbox.Items.Add ("test1", true);
29                         checked_items.Add ("test1"); checked_pos.Add (0);
30                         mychklistbox.Items.Add ("test2");
31                         mychklistbox.Items.Add ("test3", true);
32                         checked_items.Add ("test3"); checked_pos.Add (2);
33                         mychklistbox.Visible = true;
34                         myform.Controls.Add (mychklistbox);
35                         Assert.AreEqual (checked_items.Count, mychklistbox.CheckedIndices.Count, "#1");
36                         Assert.AreEqual (checked_items.Count, mychklistbox.CheckedItems.Count, "#2");
37                         foreach (object o in mychklistbox.CheckedItems) 
38                         {
39                                 Assert.IsTrue (checked_items.Contains (o),"#3");
40                                 checked_items.Remove (o);
41                         }
42
43                         Assert.AreEqual (0, checked_items.Count);
44                         for (int i = 0; i < mychklistbox.Items.Count; ++i) 
45                         {
46                                 if (checked_pos.Contains (i))
47                                         Assert.AreEqual (CheckState.Checked, mychklistbox.GetItemCheckState (i),"#4");
48                                 else
49                                         Assert.IsFalse (CheckState.Checked == mychklistbox.GetItemCheckState (i),"#5");
50                         }
51                         Assert.AreEqual (false, mychklistbox.CheckOnClick, "#6");
52                         Assert.AreEqual (3, mychklistbox.Items.Count, "#7");
53                         Assert.AreEqual (SelectionMode.One, mychklistbox.SelectionMode, "#8");
54                         Assert.AreEqual (false , mychklistbox.ThreeDCheckBoxes, "#9");
55                 }
56
57                 [Test]
58                 public void GetItemCheckedTest ()
59                 {
60                         Form f = new Form ();
61                         f.Visible = true;
62                         CheckedListBox mychklistbox = new CheckedListBox ();
63                         mychklistbox.Items.Add ("test1",true);
64                         mychklistbox.Items.Add ("test2",CheckState.Indeterminate);
65                         mychklistbox.Items.Add ("test3");
66                         mychklistbox.Visible = true;
67                         f.Controls.Add (mychklistbox);
68                         Assert.AreEqual (true, mychklistbox.GetItemChecked (0), "#10");
69                         Assert.AreEqual (true, mychklistbox.GetItemChecked (1), "#11");
70                         Assert.AreEqual (false, mychklistbox.GetItemChecked (2), "#12");
71                 }       
72
73                 [Test]
74                 [ExpectedException (typeof (ArgumentOutOfRangeException) )]
75                 public void GetItemCheckedExceptionTest ()
76                 {
77                         CheckedListBox mychklistbox = new CheckedListBox ();
78                         mychklistbox.Items.Add ("test1",true);
79                         Assert.AreEqual (true, mychklistbox.GetItemChecked (1), "#13");
80                 }
81
82                 [Test]
83                 public void GetItemCheckStateTest ()
84                 {
85                         Form f = new Form ();
86                         f.Visible = true;
87                         CheckedListBox mychklistbox = new CheckedListBox ();
88                         mychklistbox.Items.Add ("test1",true);
89                         mychklistbox.Items.Add ("test2",CheckState.Indeterminate);
90                         mychklistbox.Items.Add ("test3");
91                         mychklistbox.Visible = true;
92                         f.Controls.Add (mychklistbox);
93                         Assert.AreEqual (CheckState.Checked, mychklistbox.GetItemCheckState (0), "#14");
94                         Assert.AreEqual (CheckState.Indeterminate, mychklistbox.GetItemCheckState (1), "#15");
95                         Assert.AreEqual (CheckState.Unchecked, mychklistbox.GetItemCheckState (2), "#16");
96                 }       
97
98                 [Test]
99                 public void SetItemCheckedTest ()
100                 {
101                         Form myform = new Form ();
102                         myform.Visible = true;
103                         CheckedListBox mychklistbox = new CheckedListBox ();
104                         mychklistbox.Items.Add ("test1");
105                         mychklistbox.Items.Add ("test2");
106                         mychklistbox.Visible = true;
107                         myform.Controls.Add (mychklistbox);
108                         mychklistbox.SetItemChecked (0,true);
109                         mychklistbox.SetItemChecked (1,false);
110                         Assert.AreEqual (CheckState.Checked, mychklistbox.GetItemCheckState (0), "#17");
111                         Assert.AreEqual (CheckState.Unchecked, mychklistbox.GetItemCheckState (1), "#18");
112                 }
113
114                 [Test]
115                 public void SetItemCheckStateTest ()
116                 {
117                         Form myform = new Form ();
118                         myform.Visible = true;
119                         CheckedListBox mychklistbox = new CheckedListBox ();
120                         mychklistbox.Items.Add ("test1");
121                         mychklistbox.Items.Add ("test2");
122                         mychklistbox.Items.Add ("test3");
123                         mychklistbox.Visible = true;
124                         myform.Controls.Add (mychklistbox);
125                         mychklistbox.SetItemCheckState (0,CheckState.Checked);
126                         mychklistbox.SetItemCheckState (1,CheckState.Indeterminate);
127                         mychklistbox.SetItemCheckState (2,CheckState.Unchecked);
128                         Assert.AreEqual (CheckState.Checked, mychklistbox.GetItemCheckState (0), "#19");
129                         Assert.AreEqual (CheckState.Indeterminate, mychklistbox.GetItemCheckState (1), "#20");
130                         Assert.AreEqual (CheckState.Unchecked, mychklistbox.GetItemCheckState (2), "#21");
131                 }       
132         }
133 }