* Container.cs: Replaced for loop with for loop.
[mono.git] / mcs / class / System / Test / System.ComponentModel / ComponentResourceManagerTest.cs
1 //
2 // System.ComponentModel.ComponentResourceManager test cases
3 //
4 // Authors:
5 //      Gert Driesen (drieseng@users.sourceforge.net)
6 //
7 // (c) 2007 Gert Driesen
8 //
9
10 using System;
11 using System.Collections;
12 using System.ComponentModel;
13 using System.Globalization;
14 using System.Reflection;
15 using System.Resources;
16
17 using NUnit.Framework;
18
19 namespace MonoTests.System.ComponentModel
20 {
21         [TestFixture]
22         public class ComponentResourceManagerTest
23         {
24                 [Test]
25                 public void Constructor0 ()
26                 {
27                         MockComponentResourceManager crm = new MockComponentResourceManager ();
28                         Assert.IsNull (crm.BaseName, "#1");
29                         Assert.IsNull (crm.BaseNameField, "#2");
30                         Assert.IsFalse (crm.IgnoreCase, "#3");
31                         Assert.IsNull (crm.MainAssembly, "#4");
32                         Assert.IsNull (crm.ResourceSets, "#5");
33                         Assert.IsNotNull (crm.ResourceSetType, "#6");
34                         Assert.IsTrue (typeof (ResourceSet).IsAssignableFrom (crm.ResourceSetType), "#7");
35                         //Assert.IsFalse (typeof (ResourceSet) == crm.ResourceSetType, "#7");
36                 }
37
38                 [Test]
39                 public void Constructor1 ()
40                 {
41                         MockComponentResourceManager crm = new MockComponentResourceManager (
42                                 typeof (Component));
43                         Assert.IsNotNull (crm.BaseName, "#1");
44                         Assert.AreEqual ("Component", crm.BaseName, "#2");
45                         Assert.IsNotNull (crm.BaseNameField, "#3");
46                         Assert.AreEqual ("Component", crm.BaseNameField, "#4");
47                         Assert.IsFalse (crm.IgnoreCase, "#5");
48                         Assert.IsNotNull (crm.MainAssembly, "#6");
49                         Assert.AreEqual (typeof (Component).Assembly, crm.MainAssembly, "#7");
50                         Assert.IsNotNull (crm.ResourceSets, "#8");
51                         Assert.AreEqual (0, crm.ResourceSets.Count, "#9");
52                         Assert.IsNotNull (crm.ResourceSetType, "#10");
53                         Assert.IsTrue (typeof (ResourceSet).IsAssignableFrom (crm.ResourceSetType), "#11");
54                         //Assert.IsFalse (typeof (ResourceSet) == crm.ResourceSetType, "#12");
55                 }
56
57                 [Test]
58                 public void Constructor1_ResourceSource_Null ()
59                 {
60                         try {
61                                 new ComponentResourceManager ((Type) null);
62                                 Assert.Fail ("#1");
63                         } catch (ArgumentNullException ex) {
64                                 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
65                                 Assert.IsNull (ex.InnerException, "#3");
66                                 Assert.IsNotNull (ex.Message, "#4");
67                                 Assert.IsNotNull (ex.ParamName, "#5");
68                                 Assert.AreEqual ("resourceSource", ex.ParamName, "#6");
69                         }
70                 }
71
72                 [Test]
73                 public void ApplyResources_ObjectName_Null ()
74                 {
75                         ComponentResourceManager crm = new ComponentResourceManager ();
76                         try {
77                                 crm.ApplyResources (new object (), (string) null);
78                                 Assert.Fail ("#A1");
79                         } catch (ArgumentNullException ex) {
80                                 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#A2");
81                                 Assert.IsNull (ex.InnerException, "#A3");
82                                 Assert.IsNotNull (ex.Message, "#A4");
83                                 Assert.IsNotNull (ex.ParamName, "#A5");
84                                 Assert.AreEqual ("objectName", ex.ParamName, "#A6");
85                         }
86
87                         try {
88                                 crm.ApplyResources (new object (), (string) null, CultureInfo.InvariantCulture);
89                                 Assert.Fail ("#B1");
90                         } catch (ArgumentNullException ex) {
91                                 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#B2");
92                                 Assert.IsNull (ex.InnerException, "#B3");
93                                 Assert.IsNotNull (ex.Message, "#B4");
94                                 Assert.IsNotNull (ex.ParamName, "#B5");
95                                 Assert.AreEqual ("objectName", ex.ParamName, "#B6");
96                         }
97                 }
98
99                 [Test]
100                 public void ApplyResources_Value_Null ()
101                 {
102                         ComponentResourceManager crm = new ComponentResourceManager ();
103                         try {
104                                 crm.ApplyResources (null, "$this");
105                                 Assert.Fail ("#A1");
106                         } catch (ArgumentNullException ex) {
107                                 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#A2");
108                                 Assert.IsNull (ex.InnerException, "#A3");
109                                 Assert.IsNotNull (ex.Message, "#A4");
110                                 Assert.IsNotNull (ex.ParamName, "#A5");
111                                 Assert.AreEqual ("value", ex.ParamName, "#A6");
112                         }
113
114                         try {
115                                 crm.ApplyResources (null, "$this", CultureInfo.InvariantCulture);
116                                 Assert.Fail ("#B1");
117                         } catch (ArgumentNullException ex) {
118                                 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#B2");
119                                 Assert.IsNull (ex.InnerException, "#B3");
120                                 Assert.IsNotNull (ex.Message, "#B4");
121                                 Assert.IsNotNull (ex.ParamName, "#B5");
122                                 Assert.AreEqual ("value", ex.ParamName, "#B6");
123                         }
124                 }
125
126                 [Test]
127                 public void IgnoreCase ()
128                 {
129                         ComponentResourceManager crm = new ComponentResourceManager ();
130                         Assert.IsFalse (crm.IgnoreCase, "#1");
131                         crm.IgnoreCase = true;
132                         Assert.IsTrue (crm.IgnoreCase, "#2");
133                 }
134
135                 class MockComponentResourceManager : ComponentResourceManager
136                 {
137                         public MockComponentResourceManager ()
138                         {
139                         }
140
141                         public MockComponentResourceManager (Type resourceSource)
142                                 : base (resourceSource)
143                         {
144                         }
145
146                         public new string BaseNameField {
147                                 get { return base.BaseNameField; }
148                         }
149
150                         public new Assembly MainAssembly {
151                                 get { return base.MainAssembly; }
152                         }
153
154                         public new Hashtable ResourceSets {
155                                 get { return base.ResourceSets; }
156                         }
157                 }
158         }
159 }