[bcl] Remove more NET_2_0 checks from class libs
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / ControlCollectionTest.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4 using NUnit.Framework;
5 using System.Drawing;
6 using System.Windows.Forms;
7
8 namespace MonoTests.System.Windows.Forms
9 {
10         [TestFixture]
11         public class ControlCollectionTest : TestHelper
12         {
13                 [Test]
14                 public void ControlCollectionTests ()
15                 {
16                         Control c = new Control ();
17                         c.Name = "A";
18                         Control c2 = new Control ();
19                         c2.Name = "B";
20                         Control c3 = new Control ();
21                         c3.Name = "a";
22                         Control c4 = new Control ();
23                         c4.Name = "B";
24                         Control c5 = new Control ();
25                         c5.Name = "a";
26                         
27                         c.Controls.Add (c2);
28                         c.Controls.Add (c3);
29                         c2.Controls.Add (c4);
30                         c2.Controls.Add (c5);
31                         
32                         // this[key]
33                         Assert.AreSame (c2, c.Controls["B"], "A1");
34                         Assert.AreSame (c2, c.Controls["b"], "A2");
35                         
36                         // Owner
37                         Assert.AreSame (c, c.Controls.Owner, "A3");
38                         
39                         // ContainsKey
40                         Assert.AreEqual (true, c.Controls.ContainsKey ("A"), "A4");
41                         Assert.AreEqual (true, c.Controls.ContainsKey ("a"), "A5");
42                         Assert.AreEqual (false, c.Controls.ContainsKey ("C"), "A6"); 
43                 
44                         // Find
45                         Assert.AreEqual (1, c.Controls.Find ("A", false).Length, "A7");
46                         Assert.AreEqual (1, c.Controls.Find ("a", false).Length, "A8");
47                         Assert.AreEqual (0, c.Controls.Find ("C", false).Length, "A9");
48
49                         Assert.AreEqual (2, c.Controls.Find ("A", true).Length, "A10");
50                         Assert.AreEqual (2, c.Controls.Find ("a", true).Length, "A11");
51                         Assert.AreEqual (0, c.Controls.Find ("C", true).Length, "A12");
52                         Assert.AreEqual (1, c2.Controls.Find ("b", true).Length, "A13");
53                         
54                         // IndexOfKey
55                         Assert.AreEqual (1, c.Controls.IndexOfKey ("A"), "A14");
56                         Assert.AreEqual (1, c.Controls.IndexOfKey ("a"), "A15");
57                         Assert.AreEqual (-1, c.Controls.IndexOfKey ("C"), "A16");
58         
59                         // RemoveByKey
60                         c.Controls.RemoveByKey ("A");
61                         Assert.AreEqual (1, c.Controls.Count, "A17");
62                         
63                         c.Controls.RemoveByKey ("b");
64                         Assert.AreEqual (0, c.Controls.Count, "A18");
65
66                         c.Controls.RemoveByKey (null);
67                 }
68
69                 [Test]
70                 [ExpectedException (typeof (ArgumentNullException))]
71                 public void ControlCollectionFindANE ()
72                 {
73                         Control c = new Control ();
74                         c.Controls.Find ("", false);
75                 }
76         }
77 }